Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Web Services / March 2008

Tip: Looking for answers? Try searching our database.

App wide catchall exception handler

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
John - 27 Mar 2008 04:06 GMT
Hi

I have a vs2008 winform app that has a start-up form assigned through
application framework i.e. no Sub Main. How can I setup a catchall exception
handler to my app to catch any unexpected exceptions?

Thanks

Regards
Patrice - 27 Mar 2008 10:46 GMT
In "Projects properties", select the "Application" tab and the  "View
Application Events" button. It will create a vb file that allows to handle
Application level events including an "UnhandledException" event...

> Hi
>
[quoted text clipped - 5 lines]
>
> Regards
kimiraikkonen - 27 Mar 2008 10:47 GMT
> Hi
>
[quoted text clipped - 5 lines]
>
> Regards

Try-catch-finally?
Phill W. - 27 Mar 2008 14:23 GMT
> I have a vs2008 winform app that has a start-up form assigned through
> application framework i.e. no Sub Main.  

Why not?
I haven't played with the Application Framework yet and, personally, I
/like/ Sub Main.

> How can I setup a catchall exception handler to my app to catch
> any unexpected exceptions?

Apart from the occasional left-field stuff that the Framework throws at
you, you shouldn't /have/ any unexpected exceptions.

Exceptions are exceptional, not "unexpected".

IMHO, this is one of the big weaknesses of .Net.
It hands you this big thing called "Exception Handling" on a platter,
then leaves /you/ to work out what to do with it.  Other languages are
far more explicit and actually push you to keep Exception Handling very
much in mind as you write your code.

Every "entry point" into your code (Sub Main, methods that run on
Threads, any action that the user initiates) should have its /own/
Try..Catch constructs.

Having a global, "catch-all" Exception Handler is /limited/ in its use,
and then mainly as a last-resort, back-stop.  The most you can do here
is to log the error to a file, somewhere.  By the time you get here, the
program's teetering on the edge, ready to collapse in a messy heap.
There's nothing you can do to recover from (or /Handle/) the exception.
 You have to do that /much/ closer to the site of the problem.

HTH,
   Phill  W.
RobinS - 28 Mar 2008 02:02 GMT
>> I have a vs2008 winform app that has a start-up form assigned through
>> application framework i.e. no Sub Main.
[quoted text clipped - 30 lines]
> HTH,
>    Phill  W.

So are you positing that one should put a big Try/Catch around the code in
Program.cs rather than putting in event handlers for the Application
Unhandled Exception and the Unhandled Thread Exception?

While we all agree that our applications should not throw unhandled
exceptions, what if it does?

RobinS.
John Saunders [MVP] - 28 Mar 2008 12:55 GMT
> While we all agree that our applications should not throw unhandled
> exceptions, what if it does?

You tell us. If it does throw an unhandled exception, what will your
catch-all handler _do_ about it? Log the exception, and then, what?

Signature

--------------------------------------------------------------------------------
John Saunders | MVP - Windows Server System - Connected System Developer

Dave - 28 Mar 2008 13:31 GMT
>> While we all agree that our applications should not throw unhandled
>> exceptions, what if it does?
>
> You tell us. If it does throw an unhandled exception, what will your
> catch-all handler _do_ about it? Log the exception, and then, what?

throw it, then restart... just like ms's failed initial attempt at sp1 for
vista, fail, restart, fail, restart, fail, restart, ad infinitum, ad
nauseum...  sometimes its good to just give up.
John Saunders [MVP] - 28 Mar 2008 13:37 GMT
>>> While we all agree that our applications should not throw unhandled
>>> exceptions, what if it does?
[quoted text clipped - 5 lines]
> vista, fail, restart, fail, restart, fail, restart, ad infinitum, ad
> nauseum...  sometimes its good to just give up.

If it's unhandled, then your application is probably not in a good enough
state for you to know that  it makes sense to restart.

Depending on what kind of application it is, you're probably better off just
not catching such an exception.

Signature

--------------------------------------------------------------------------------
John Saunders | MVP - Windows Server System - Connected System Developer

Steve Gerrard - 29 Mar 2008 03:31 GMT
>> While we all agree that our applications should not throw unhandled
>> exceptions, what if it does?
>
> You tell us. If it does throw an unhandled exception, what will your
> catch-all handler _do_ about it? Log the exception, and then, what?

Exit, I assume. It is not there to fix things, it is there to avoid a weird
message for the user. The message should inform them that the programmer failed
to catch the exception, that it has been logged, and that they should have a
nice day.
RobinS - 30 Mar 2008 00:10 GMT
>>> While we all agree that our applications should not throw unhandled
>>> exceptions, what if it does?
[quoted text clipped - 6 lines]
> programmer failed to catch the exception, that it has been logged, and
> that they should have a nice day.

That's exactly right. Plus, it gives us the exception and a stack trace to
work off of to fix the problem. That's better than "the application crashed
and we have no idea what it did". It also removes the onus on the user to
copy the error message and send it to us. More information is always better.

RobinS.

Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.