Introduction
In a perfect world there would be no run-time errors. Programmers would write code with nary a bug and with robust user input validation, and external resources like database servers and e-mail servers would never go offline. Of course, in reality errors are inevitable. The classes in the .NET Framework signal an error by throwing an exception. For example, calling a SqlConnection object's Open method establishes a connection to the database specified by a connection string. However, if the database is down or if the credentials in the connection string are invalid then the Open method throws aSqlException
. Exceptions can be handled by the use oftry/catch/finally
blocks. If code within a try
block throws an exception, control is transferred to the appropriate catch block where the developer can attempt to recover from the error. If there is no matching catch block, or if the code that threw the exception is not in a try block, the exception percolates up the call stack in search of try/catch/finally
blocks.Examining the Three Types of Error Pages
When an unhandled exception arises in an ASP.NET application one of three types of error pages is displayed:
- The Exception Details Yellow Screen of Death error page,
- The Runtime Error Yellow Screen of Death error page, or
- A custom error page
- Figure 1 shows the Exception Details YSOD page. Note the URL in the browser's address window:
http://localhost:62275/Genre.aspx?ID=foo
. Recall that theGenre.aspx
page lists the book reviews in a particular genre. It requires thatGenreId
value (auniqueidentifier
) be passed through the querystring; for example, the appropriate URL to view the fiction reviews isGenre.aspx?ID=7683ab5d-4589-4f03-a139-1c26044d0146
. If a non-uniqueidentifier
value is passed in through the querystring (such as "foo") an exception is thrown.
Using a Custom Error Page
Every web application should have a custom error page. It provides a more professional-looking alternative to the Runtime Error YSOD, it is easy to create, and configuring the application to use the custom error page takes only a few moments. The first step is creating the custom error page. I've added a new folder to the Book Reviews application named
ErrorPages
and added to that a new ASP.NET page named Oops.aspx
. Have the page use the same master page as the rest of the pages on your site so that it automatically inherits the same look and feel.
With the error page completed, configure the web application to use the custom error page in lieu of the Runtime Error YSOD. This is accomplished by specifying the URL of the error page in the
<customErrors>
section'sdefaultRedirect
attribute. Add the following markup to your application's Web.config
file:<system.web> <customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx" /> ... </system.web>
No comments:
Post a Comment