"sm" <sm@discussions.microsoft.com> schrieb:
> I have a couple of questions with regards to handling errors
> and exceptions.
[quoted text clipped - 6 lines]
>
> in all the routines will exceptions be also trapped by the 'On Error'?
Exceptions raised in methods called after 'On Error GoTo...' will be handled
too.
> 2. Is using exceptions handling an alternative to using 'On Error' handlers?
Yes.

Signature
Herfried K. Wagner [MVP]
<URL:http://dotnet.mvps.org/
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
> Hi,
>
[quoted text clipped - 13 lines]
>
> Thanks in advance.
sm - 30 Oct 2004 09:31 GMT
Thanks a lot. Your reply has been very helpful. So is the link.
BTW, what is IMHO logging? I hope its not a naive question.
Regards.
> sm,
> In addition to Herfried's comments.
[quoted text clipped - 64 lines]
> >
> > Thanks in advance.
Jay B. Harlow [MVP - Outlook] - 30 Oct 2004 16:13 GMT
sm,
IMHO = In my humbly opinion.
Most of the time I have exception logging in my global exception handler,
however I also have routines where I need the exception logging in a
specific routine. Such as processing items in a batch of, individual items
in the batch may fail, however the entire batch does not fail.
Hope this helps
Jay
> Thanks a lot. Your reply has been very helpful. So is the link.
>
[quoted text clipped - 81 lines]
>> >
>> > Thanks in advance.