Exiting an error handler

You must exit an error handler with the RESUME LABEL statement. Execution branches immediately to the specified local label, and the original error trap operation is restored ready to catch the next run-time error.

In the sample program, you want to use RESUME to a specific line. Put the line label before the line that requests user input to give the user another chance to enter a correct path.

Here is the sample program, complete with Error Trapping:

SUB GetFileNames(File() AS STRING)

DIM CurrentDir AS STRING

DIM fName AS STRING, Mask AS STRING

DIM X AS INTEGER

ON ERROR GOTO ErrorTrap

Mask = "*.*"

CurrentDir = CURDIR$

GetPath:

Path = AskUserForPath$()

fName = DIR$(RTRIM$(Path) + Mask)

IF LEN(fName) = 0 THEN EXIT SUB

X = 1

WHILE LEN(fName)

Files(X) = fName

fName = DIR$

INCR X

WEND

EXIT SUB

ErrorTrap:

SELECT CASE ERRCLEAR

CASE 53 : ErrorMsg "No files in this directory."

CASE 71 : ErrorMsg "Drive not ready."

CASE 76 : ErrorMsg "That path doesn't exist."

CASE ELSE : ErrorMsg "Unknown error!"

END SELECT

RESUME GetPath

END SUB

See Also

Error Overview

Error Trapping

How error traps work

Setting an error trap

Writing an error handler

Error Trapping Summary