DotNet Tutorials

V4 Dot Net Tutorials

Server Intellect Cloud Hosting

 Recovering an Exception using ASP.NET 2.0 and C# .NET

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

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

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.

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.

using 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.

start_try:;
try
{
Directory.CreateDirectory(MapPath(".") + "\\" + txtDir.Text);
}
catch (PathTooLongException ex)
{
lblStatus.Text = "There was an PathTooLongException when creating the directory";
lblStatus.Text += " in " + MapPath(".") + "\\" + "\r...";
//remove one character
txtDir.Text = txtDir.Text.Substring(0,txtDir.Text.Length - 1);
lblStatus.Text += "Truncated Directory Name..." + "\r";
goto start_try; //and try again
}
catch (Exception ex)
{
lblStatus.Text = ex.Message;
}
lblStatus.Text += "Directory successfully created!" + "\r";

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:

If you're looking for a really good web host, try Server Intellect - we found the setup procedure and control panel, very easy to adapt to and their IT team is awesome!

<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>

The flow for the code behind page is as follows.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnSubmit_Click(object sender, EventArgs e)
{
start_try:;
try
{
Directory.CreateDirectory(MapPath(".") + "\\" + txtDir.Text);
}
catch (PathTooLongException ex)
{
lblStatus.Text = "There was an PathTooLongException when creating the directory";
lblStatus.Text += " in " + MapPath(".") + "\\" + "\r...";
//remove one character
txtDir.Text = txtDir.Text.Substring(0,txtDir.Text.Length - 1);
lblStatus.Text += "Truncated Directory Name..." + "\r";
goto start_try; //and try again
}
catch (Exception ex)
{
lblStatus.Text = ex.Message;
}
lblStatus.Text += "Directory successfully created!" + "\r";
}
}



Looking for the VB.NET 2005 Version? Click Here!

Looking for more ASP.NET Tutorials? Click Here!

We used over 10 web hosting companies before we found Server Intellect. Their dedicated servers and add-ons were setup swiftly, in less than 24 hours. We were able to confirm our order over the phone. They respond to our inquiries within an hour. Server Intellect's customer support and assistance are the best we've ever experienced.

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!