My program does not provide an Application object, so the proper way according to
http://docwiki.embarcadero.com/Libraries/XE8/en/System.Halt is to call Exit from main Program block.
However, the program might need to be terminated in deeply nested routines, hence coding immdiate checks in each routine call to exit all the way to the main Program block is a lot of work, so i thought of 2 ways:
1. call Abort and let the exception propagate to the main Program block, which will have a try block to catch EAbort and exit the program.
2. call Halt.
Which of the above is preferred and why?
Halt performs an abnormal termination of a program and returns to the operating system.
What constitute 'abnormal termination'? Anything besides successful and complete execution of the program?
Are user input error, resource access (file, web) error etc considered requiring abnormal termination?
If i am not using Application object, what kind of resources might possibly not be freed by calling halt, since finalization block is still executed?