Recover in Pascal
Pascal makes it possible to recover from exceptions using a try-except
block. This mechanism can stop an exception from terminating the program and allow it to continue execution instead.
An example of where this can be useful: a server wouldn’t want to crash if one of the client connections exhibits a critical error. Instead, the server would want to close that connection and continue serving other clients.
In this example, we define a procedure MayRaise
that raises an exception:
To handle exceptions, we use a try-except
block in the Main
procedure:
The try
block contains the code that might raise an exception. If an exception is raised, execution immediately jumps to the except
block. Here, we catch all exceptions of type Exception
(which includes all standard exceptions in Pascal).
When an exception is caught, we print a message indicating that we recovered from the error, along with the error message.
The line WriteLn('After MayRaise()');
will not be executed because MayRaise
raises an exception. The execution of Main
stops at the point of the exception and resumes in the except
block.
When you run this program, you should see output similar to this:
This demonstrates that we successfully caught and handled the exception, preventing it from crashing our program.