|Title||Use code that allows the user to abort, retry, or ignore when an error occurs|
|Description||This example shows how to use code that allows the user to abort, retry, or ignore when an error occurs in Visual Basic 6.|
|Keywords||error, error handling, abort, try, ignore|
When you click this program's List button, the code tries to list the files in floppy drive directory A:\. If the drive is empty, this raises an error. The program displays an error message and lets the user abort (stop trying), retry (the user has inserted a floppy disk), or ignore (move on to something else.
The program enters a loop that lasts until it gets a file name. Inside the loop, the program uses Dir$ to look for a file in A:\.
If the program does not get an error, it sets got_file to True to end its loop.
If the Dir$ function raises an error, the program tells the user there is a problem and asks what to do. If the user picks Abort, the program displays a message and exits the subroutine. If the user clicks Retry, then the code continues its loop to try again. If the user clicks Ignore, then the program fills in a default blank file name and sets got_file to True so it exits its loop.
After the loop ends, the program checks the file name to see if it found a file or the user clicked Ignore. If the user clicke Ignore, the program takes some default action. If the program found a file, it lists the files in A:\.
Private Sub cmdList_Click()
Dim got_file As Boolean
Dim file_name As String
Dim had_error As Boolean
Dim txt As String
got_file = False
Do Until got_file
' Get a file in A:\.
On Error Resume Next
file_name = Dir$("A:\*.*")
got_file = (Err.Number = 0)
On Error GoTo 0
' See if we got a file name.
If Not got_file Then
' Trouble. The drive may be empty.
' Ask the user what to do.
Select Case MsgBox("Error reading A drive. " & _
Err.Description & vbCrLf & "Try " & _
vbAbortRetryIgnore, "Error Reading " & _
' Cancel the operation.
MsgBox "Operation canceled"
' Continue the Do loop to try again.
' Take a default action.
file_name = ""
got_file = True
' See if the user picked Ignore.
If Len(file_name) = 0 Then
' Ignore. Take a default action.
txt = "Here's the default text."
' Success. List the files in A:\.
txt = "Files:" & vbCrLf
Do While Len(file_name) > 0
txt = txt & " " & file_name & vbCrLf
file_name = Dir$()
MsgBox txt, vbOKOnly, "Results"