DotNet Tutorials

Server Intellect

 Recovering an Exception using ASP.NET 2.0 and VB .NET

This tutorial will show you how to recover an exception using ASP.NET 2.0 and VB.NET

There are many ways to re-try a try block in .NET. Here is one simple solution to this problem.

Try Server Intellect for Windows Server Hosting. Quality and Quantity!

In this example we will be catching an exception when trying to create a directory in the filesystem, so we will need the System.IO namespace. Our code will catch an exception if the user tries to create a directory that is 248 characters long.

Imports System.IO

We'll put our code in the btnSubmit_Click() event.

When the btnSubmit_Click() event fires it runs a try block. The try block attempts to create the directory given in the textbox. In this example, we are specifying that our catch blocks handles exceptions of the type PathTooLongException. When this exception is raised, we truncate the given path to one less character and follows a goto statement to the start_try label. Labels are used as markers in different areas of code. The try block will continue to try its code until the directory has been successfully created.

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
start_try:
Try
Directory.CreateDirectory(MapPath(".") & "\" & txtDir.Text)
Catch ex As PathTooLongException
lblStatus.Text = "There was an PathTooLongException when creating the directory"
lblStatus.Text &= " in " & MapPath(".") & "\" & Constants.vbCr & "..."
'remove one character
txtDir.Text = txtDir.Text.Substring(0, txtDir.Text.Length - 1)
lblStatus.Text &= "Truncated Directory Name..." & Constants.vbCr
GoTo start_try 'and try again
Catch ex As Exception
lblStatus.Text = ex.Message
End Try

lblStatus.Text &= "Directory successfully created!" & Constants.vbCr
End Sub

We have one textbox,a Submit button, and a label on the front end for user interaction. The front end .aspx page looks something like this:

<table width="600" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#cccccc">
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1"> Catching an Exception:</td>
<td align="center" bgcolor="#FFFFFF">
Directory:<asp:TextBox ID="txtDir" runat="server"></asp:TextBox>
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /><br />
&nbsp;<asp:label ID="lblStatus" runat="server"></asp:label></td>
</tr>
</table>

Server Intellect assists companies of all sizes with their hosting needs by offering fully configured server solutions coupled with proactive server management services. Server Intellect specializes in providing complete internet-ready server solutions backed by their expert 24/365 proactive support team.

The flow for the code behind page is as follows.

Imports System.IO

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
start_try:
Try
Directory.CreateDirectory(MapPath(".") & "\" & txtDir.Text)
Catch ex As PathTooLongException
lblStatus.Text = "There was an PathTooLongException when creating the directory"
lblStatus.Text &= " in " & MapPath(".") & "\" & Constants.vbCr & "..."
'remove one character
txtDir.Text = txtDir.Text.Substring(0, txtDir.Text.Length - 1)
lblStatus.Text &= "Truncated Directory Name..." & Constants.vbCr
GoTo start_try 'and try again
Catch ex As Exception
lblStatus.Text = ex.Message
End Try
lblStatus.Text &= "Directory successfully created!" & Constants.vbCr
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub
End Class



Looking for the C#.NET 2005 Version? Click Here!

Looking for more ASP.NET Tutorials? Click Here!
Download Project Source - Enter your Email to be emailed a link to download the Full Source Project used in this Tutorial!



100% SPAM FREE! We will never sell or rent your email address!
 
123 ASP

411 ASP

Dot Net Freaks

Server Intellect