Trapping Exceptions in Forms apps

  • Thread starter Thread starter GaryDean
  • Start date Start date
G

GaryDean

In ASP.Net applications we are able to trap exceptions in the
Application_Error Event in the Global.asax with the following code...
System.Exception myException = new Server.GetLastError().InnerException.

Where do I trap this in a Forms Application?
 
Where do I trap this in a Forms Application?

You can handle the Application.ThreadException event.


Mattias
 
Like this (before your Application.Run)

Application.ThreadException += new
System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new
UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
 
Hi Gary,

I agree to what Mattias and Gary have suggested.

In addition, if you're using VS05 and VB.NET, you could also handle the
UnhandledException event of the application when the application framework
is enabled.

To do this, right-click the project in the Solution Explorer and choose
Properties. In the Project Designer, switch to the 'Application' tab.
Ensure the checkbox before the 'Enable application framework' option is
selected. Click the 'View Application Events' button and the
ApplicationEvents.vb file will be created and opened.

Then select '(MyApplication Events)' from the top left combobox, and then
select 'UnhandledException' from the top right combobox. An event handler
for the UnhandledException will be created automatically.

Hope this helps.
If you have any question, please feel free to let me know.

Sincerely,
Linda Liu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
Before my Application Run? where is that? Initializecomponent?
(haven't done forms apps in a while)
 
Hi Gary,

Bryan means that you hook up the ThreadException and UnhandledException
events before the code 'Application.Run(new mainform())' in the static Main
method.

Sincerely,
Linda Liu
Microsoft Online Community Support
 
But if I put the subscribe code in Program.cs, Main method
Application_ThreadException is an undefined variable because that method is
in form1 and it has to be in Form1 because it references all sorts of
variables in that scope
 
Hi Gary,

In fact, it doesn't matter where you hook up the ThreadException and
UnhandledException events and handle them.

You could put the subscribe code in the static Main method within the
Program.cs file, as well as in the constructor of the main form.

I mean if you have to put the ThreadException and UnhandledException event
handlers in the Form1, you could put the subscribe code in the Form1's
constructor.

If you have anything unclear, please feel free to let me know.

Sincerely,
Linda Liu
Microsoft Online Community Support
 
Back
Top