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.
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 chose Server Intellect for its dedicated servers, for our web hosting. They have managed to handle virtually everything for us, from start to finish. And their customer service is stellar.
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 moved our web sites to Server Intellect and have found them to be incredibly professional. Their setup is very easy and we were up and running in no time.
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 /> <asp:label ID="lblStatus" runat="server"></asp:label></td> </tr> </table> |
I just signed up at Server Intellect and couldn't be more pleased with my Windows Server! Check it out and see for yourself.
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"; |
No comments:
Post a Comment