Difference between revisions of "runtime error"

From Free Pascal wiki
Jump to navigationJump to search
Line 23: Line 23:
  
 
== see also ==
 
== see also ==
 +
* [[compile-time error]]
 
* [https://www.freepascal.org/docs-html/user/userap4.html Appendix D in the Free Pascal User's Guide: “Run-time errors”]
 
* [https://www.freepascal.org/docs-html/user/userap4.html Appendix D in the Free Pascal User's Guide: “Run-time errors”]
 
* [[RunError|procedure <syntaxhighlight lang="pascal" enclose="none">runError</syntaxhighlight>]]
 
* [[RunError|procedure <syntaxhighlight lang="pascal" enclose="none">runError</syntaxhighlight>]]
 
* [https://www.freepascal.org/docs-html/current/user/userse58.html “Line numbers in run-time error backtraces”] in the Free Pascal User's Guide
 
* [https://www.freepascal.org/docs-html/current/user/userse58.html “Line numbers in run-time error backtraces”] in the Free Pascal User's Guide
 
* {{Doc|package=RTL|unit=system|identifier=returnnilifgrowheapfails|text=<syntaxhighlight lang="pascal" enclose="none">system.returnNilIfGrowHeapFails</syntaxhighlight>}}
 
* {{Doc|package=RTL|unit=system|identifier=returnnilifgrowheapfails|text=<syntaxhighlight lang="pascal" enclose="none">system.returnNilIfGrowHeapFails</syntaxhighlight>}}

Revision as of 01:52, 1 May 2020

English (en) suomi (fi)

A run-time error is an irreparable error condition that arises during the run-time, i.e. the execution of a program.

behavior

The FPC inserts code to detect a vast number of error situations. If such a situation is encountered, the standard run-time library will initiate the termination of the program. A run-time error number, and the address the error occurred at is being printed. This is the safest and cheapest error treatment.

comparative remarks

compile-time errors

In contrast to compile-time errors, which the compiler detects during compilation, run-time errors depend on the state of the program, thus can not be foreseen in advance. If a compile-time error is encountered, no executable program is generated.

exceptions

Run-time errors are the classical imperative approach in order to avoid inconsistent program states, which may eventually cause faulty program behavior. If FPC's sysUtils unit is included, all run-time errors become exceptions (cf. system.runTimeErrors for details). Unlike run-time errors those can be caught by try... except on...do ... end blocks, provided a mode allowing exceptions – such as {$mode ObjFPC} or {$mode Delphi} – is being used. A run-time error causes the program to terminate, while an exception may give the opportunity to “fix” the problem. This standard behavior of system.runError can be altered by assigning a non-nil value to system.errorProc.

see also