Re: Error handlers and Exception handlers
From: Jay B. Harlow [MVP - Outlook] (Jay_Harlow_MVP_at_msn.com)
Date: 10/25/04
- Next message: moondaddy: "Re: Using Installutil.exe for a 2nd location of the Execption Management Block"
- Previous message: guy: "code check please"
- In reply to: sm: "Error handlers and Exception handlers"
- Next in thread: sm: "Re: Error handlers and Exception handlers"
- Reply: sm: "Re: Error handlers and Exception handlers"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 25 Oct 2004 11:16:13 -0500
sm,
In addition to Herfried's comments.
There have been many a thread of the benefits of Try/Catch verses On Error,
if you would like links on these discussions I can find them & post them. I
prefer Try/Catch & Try/Finally
I use Try/Catch when there is something specific that I need to do with the
exception. Otherwise I let my global exception handlers handle the event.
IMHO logging should go in the global exception handler. Too often I've seen
Try/Catch blocks where the exception information is "lost" making it harder
to diagnose problems.
I use Try/Finally blocks significantly more often to ensure that resources
are closed, using the "using" statement in C# simplifies this. We will have
to wait for Whidbey (VS.NET 2005) to get the "Using" statement in VB.NET.
For an unhandled exception:
Depending on the type of application you are creating, .NET has three
different global exception handlers.
For ASP.NET look at:
System.Web.HttpApplication.Error event
Normally placed in your Global.asax file.
For console applications look at:
System.AppDomain.UnhandledException event
Use AddHandler in your Sub Main.
For Windows Forms look at:
System.Windows.Forms.Application.ThreadException event
Use AddHandler in your Sub Main.
It can be beneficial to combine the above global handlers in your app, as
well as wrap your Sub Main in a try catch itself.
There is an article in the June 2004 MSDN Magazine that shows how to
implement the global exception handling in .NET that explains why & when you
use multiple of the above handlers...
http://msdn.microsoft.com/msdnmag/issues/04/06/NET/default.aspx
For example: In my Windows Forms apps I would have a handler attached to the
Application.ThreadException event, plus a Try/Catch in my Main. The
Try/Catch in Main only catches exceptions if the constructor of the MainForm
raises an exception, the Application.ThreadException handler will catch all
uncaught exceptions from any form/control event handlers.
Hope this helps
Jay
"sm" <sm@discussions.microsoft.com> wrote in message
news:F46DE94D-CDAE-40E9-86E4-DBEA7661C297@microsoft.com...
> Hi,
>
> I have a couple of questions with regards to handling errors and
> exceptions.
>
> 1. If I use
>
> On Error goto Errhandler
> ..
> Errhandler:
>
> in all the routines will exceptions be also trapped by the 'On Error'?
>
> 2. Is using exceptions handling an alternative to using 'On Error'
> handlers?
>
> Thanks in advance.
- Next message: moondaddy: "Re: Using Installutil.exe for a 2nd location of the Execption Management Block"
- Previous message: guy: "code check please"
- In reply to: sm: "Error handlers and Exception handlers"
- Next in thread: sm: "Re: Error handlers and Exception handlers"
- Reply: sm: "Re: Error handlers and Exception handlers"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|