You can catch this object using an exception handler. If you fail to catch exception, code will be aborted, and the user will see an error message on page.
Visual Studio provides a useful tool to browse through the exceptions in the .NET class library. Simply select Debug ? Exceptions from the menu
Exception Handling with Try and Catch
protected void Button1_Click(object sender, EventArgs e)
{
try
{
decimal a, b, result;
a = Decimal.Parse(txtNum1.Text);
b = Decimal.Parse(txtNum2.Text);
result = a / b;
}
catch (Exception err)
{
lblResult.Text = “<b>Message:</b> ” + err.Message + “<br /><br />”;
lblResult.Text += “<b>Source:</b> ” + err.Source + “<br /><br />”;
lblResult.Text += “<b>Stack Trace:</b> ” + err.StackTrace;
}
}
Logging Exceptions
In many cases, it’s best not only to detect and catch exceptions but to log them as well. For example, some problems may occur only when your web server is dealing with a particularly large load. Other problems might recur intermittently, with no obvious causes. To diagnose these errors and build a larger picture of site problems, you need to log exceptions so they can be reviewed later.
Writing Event Log
You can write your exception message to Event Log using System.Diagnostics namespace.
Below code to write exception to event log:
protected void Button1_Click(object sender, EventArgs e)
{
try
{
decimal a, b, result;
a = Decimal.Parse(txtNum1.Text);
b = Decimal.Parse(txtNum2.Text);
result = a / b;
}
catch (Exception err)
{
lblResult.Text = “<b>Message:</b> ” + err.Message + “<br /><br />”;
lblResult.Text += “<b>Source:</b> ” + err.Source + “<br /><br />”;
lblResult.Text += “<b>Stack Trace:</b> ” + err.StackTrace;
// Write the information to the event log.
EventLog log = new EventLog();
log.Source = “MyCustomError”;
log.WriteEntry(err.Message, EventLogEntryType.Error);
}
}
Instead of writing to Windows event log, create your own custom application log.
Below code will create a application log “SPCafe”
protected void Button1_Click(object sender, EventArgs e)
{
try
{
decimal a, b, result;
a = Decimal.Parse(txtNum1.Text);
b = Decimal.Parse(txtNum2.Text);
result = a / b;
}
catch (Exception err)
{
if (!EventLog.SourceExists(“SPCafe”))
{
EventLog.CreateEventSource(“Wrong Input”, “SPCafe”);
}
lblResult.Text = “<b>Message:</b> ” + err.Message + “<br /><br />”;
lblResult.Text += “<b>Source:</b> ” + err.Source + “<br /><br />”;
lblResult.Text += “<b>Stack Trace:</b> ” + err.StackTrace;
EventLog log = new EventLog(“SPCafe”);
log.Source = “MyCustomError”;
log.WriteEntry(err.Message, EventLogEntryType.Error);
}
}
Retrieve all Log using Log name, Log source:
protected void Button2_Click(object sender, EventArgs e)
{
lblResult.Text = “”;
if (!EventLog.Exists(txtLog.Text))
{
lblResult.Text = “The event log ” + txtLog.Text;
lblResult.Text += ” doesnt exist.”;
}
else
{
EventLog log = new EventLog(txtLog.Text);
foreach (EventLogEntry entry in log.Entries)
{
if (chkAll.Checked || entry.Source == txtSource.Text)
{
lblResult.Text += “<b>Entry Type:</b> “;
lblResult.Text += entry.EntryType.ToString();
lblResult.Text += “<br /><b>Message:</b> “;
lblResult.Text += entry.Message;
lblResult.Text += “<br /><b>Time Generated:</b> “;
lblResult.Text += entry.TimeGenerated;
lblResult.Text += “<br /><br />”;
}
}
}
}