What happens when an exception is not catched?
When an EXCEPTION is not catched the program is terminated and the hi interpreter writes a stack trace: *** Uncaught EXCEPTION NUMERIC_ERROR raised with {integer: *NULL_ENTITY_OBJECT* div fuel_max } Stack: in {(val integer param) div (val integer param) } at seed7_05.s7i(557) in init_display at lander.sd7(838) in setup at lander.sd7(907) in main at lander.sd7(1539) This stack trace shows that a ‘div’ operation causes a ‘NUMERIC_ERROR’ (probably a division by zero) in line 838 of the file “lander.sd7”. A short examination in “lander.sd7” shows that an assignment to ‘fuel_max’ was commented out to show how stack traces work. A compiled program creates a much shorter crash message: *** Uncaught EXCEPTION NUMERIC_ERROR raised at tmp_lander.c(698) In this case the mentioned file name and line number refers to the temporary C file or the Seed7 runtime library. To get useful information there are two possibilities: • Start the program in the interpreter instead. • Compile the program with the