Exceptions provide a convenient way to program error and error-recovery mechanisms, and are
closely related to classes. Exception support is based on 3 constructs:
Raise
statements. To raise an exeption. This is usually done to signal an error condition.
Try ... Except
blocks. These block serve to catch exceptions raised within the scope of
the block, and to provide exception-recovery code.
Try ... Finally
blocks. These block serve to force code to be executed irrespective of an
exception occurrence or not. They generally serve to clean up memory or close les
in case an exception occurs. The compiler generates many implicit Try ... Finally
blocks around procedure, to force memory consistence.