In a sense, HALT is an ultimate exit. Oberon modules are resident,s even after a HALT abort. The module remains loaded, and on all exported variables can be accessed even after the abort. The handling of HALT is implementation dependent. Usually the control is transferred to the Oberon module, and Oberon would open a window with a diagnostic message.
Control statements play different roles in different stages of program development.
Besides control statements directing the intended program flow, there may be implementation dependent additional control statements to support error handling. Different compilers offer specific possibilities for diagnostics and program checkin. These options are documented in the respective compiler documents. For system 3 you find more information in Compiler. Tool Introduction to the Oberon programming language.