tce,
In addition to the other comments:
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.
Public Shared Sub Main()
AddHandler Application.ThreadException, AddressOf
Application_ThreadException
Application.EnableVisualStyles()
Application.DoEvents()
Try
Application.Run(New MainForm)
Catch ex As Exception
' log ex for later diagnosis
' optionally show "pretty" version to user
End Try
End Sub
Private Shared Sub Application_ThreadException(ByVal sender As Object,
ByVal e As System.Threading.ThreadExceptionEventArgs)
' Log the e.Exception for later diagnosis.
' optionally show "pretty" version to user
End Sub
Hope this helps
Jay
"thechaosengine" <na> wrote in message
| Hi everyone,
|
| Is there anyway to create some sort of catch-all in windows forms
applications
| that could ensure that no unexpected exceptions bring down an application?
|
| For example, perhaps there is an event that you can watch for whenever an
| exception is thrown? If this isnt possible can anyone suggest the best way
| to handle unforeseen exceptions? I'm assuming that surrounding huge chunks
| of application code in try catch blocks would be a programming faux pas
|
| Thanks to anyone who can offer advice
|
| Kindest Regards
|
| tce
|