It’s inevitable that you’ll generate an error or two (or three, or four…) when you code in Classic ASP. I’ll show you how to trap errors and use them to your advantage.
Before working with the Err Object, it’s helpful to know its properties:
Property | Description | Example |
Number | Error number for the most recent error (helpful for trapping) | 7 |
Description | String containing a description of the error | Division by 0 |
Source | Source of an error, such as an object or application | Project.class |
Code Snytax
First, discover if Err.Number is greater than 0.
If Err.Number > 0 Then
'Place error handling code here, such as description and custom message
End If
Here is an instance of attempting to access a subscript of an array that is out of range, making it invalid:
myArr = Array(“one”,”two”,”three”)
Response.Write(“Element #3 is ” & myArr(3) & ”
“)
The result that shows up in your browser window is fairly cold and technical, and doesn’t adequately describe to some people what the problem is:
Microsoft VBScript runtime error '800a0009'
Subscript out of range: ‘[number: 3]’
/login.asp, line 110
We can do better than this. By trapping this error, we can print out a much easier-to-read error message.
myArr = Array("one","two","three")
Response.Write("Element #3 is " & myArr(3) & "
")
If Err.Number > 0 Then
Response.Write(“Error #” & Err.Number & ”
“)
Response.Write(“Error Source: ” & Err.Source & ”
“)
Response.Write(“Error Description: ” & Err.Description & ”
“)
End If
And here is its output:
Error #7
Error Source: Microsoft VBScript runtime error
Error Description: Subscript out of range
This result, although only tweaked a small bit from the first example, is much simpler to understand. Use these custom error messages whenever you want to help explain the error to yourself or wish to report an error in a nicer fashion to your users. And if you really want to make this more “user-friendly”, you can add the custom layout of your website (especially if you have all your repeated page elements in .inc files) to replace the bland, featureless, white pages that normally appear on your browser when an error occurs.