Instead of calling these errors, there is a trend to call the exceptions (.net does this). After all, is "trying to write to a write protected floppy" an error or simply a system state that you may want to give the user a chance to modify?
Operating systems actually perform many functions for your programs (reading and writing files for example). When there is a failure, the operating system builds an object that describes the problem and raises an exception that is passed to your program. Then you have the option of
On Error GoTo lable1 ' This is the normal way to define and enable ' an error handler On Error GoTo 0 ' Disables the error handling On Error Resume Next ' Ignore future errors and continue with the next line Exit_Point: Exit Sub ' This is needed to make sure the error handler ' is not run when there are no errors. ' Use "Exit Sub", "Exit Function", or ' "Exit Property" as appropriate Lable1: 'The error handler starts here Resume ' Continue with the statement that caused the error Resume Next ' Continue with the statement after the one that failed Resume lable ' Continue with the specified statement Resume Exit_Point ' Err is the built-in error object if Err = someNumber then ' Check fo a specific error Err.Clear ' Clear the error Err.Raise 4 ' Force/simulate error 4
try ... except on EDatabaseError do on ... do end; try ... // process file F finally CloseFile(F); on ... do end;You can (should) test for exceptions in the finally block.
Try .... Catch ... Catch ... when ... Finally ... End TryMore details here Author: Robert Clemenzi - clemenzi@cpcug.org