c# UserControl constructor don't throws exceptions as expected

Multi tool use
Multi tool use


c# UserControl constructor don't throws exceptions as expected



This is my WinForm solution entry point in Program.cs:


try
{
Application.Run(new MainForm());
}
catch (Exception e)
{
Log.error(e.ToString());
ErrorHandlerForm abend = new ErrorHandlerForm(e);
abend.ShowDialog();
}



It works fine, every exception thrown in my solution is gracefully handled!



But today I found an issue:



My program don't catch exceptions that occurs in UserControls construstors!



It simply crash to windows with the ugly system prompt (or it shows the error in the VisualStudio if i am in debug mode).



I don't understand this behaviour and I have no idea how to fix it, I want to catch those exception in my catch block.





what error do you get in Visual studio when in debug mode ?
– Prany
Jul 1 at 17:13





1 Answer
1



This answer tries to explain the underlying problem.



Just add the following lines to your main method:


//Add the event handler for handling all unhandled UI thread exceptions to the event Application_ThreadException
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);



and use this method to handle the exception:


/// <summary>
/// Handles all unhandled UI thread exceptions
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Threading.ThreadExceptionEventArgs"/> instance containing the event data.</param>
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
//handle e.Exception here
}



It's also a good idea to handle all non-UI exceptions that were not catched explicitly. Just add the following:


AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);



where CurrentDomain_UnhandledException is your exception handler method.






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

c,aWPU64Ny7la95g7y iaQ4ga4lrcFLvbuNc6jZcrxztPCMzlZ4ofyK5N7mCvGcQp5Q0
Q QWZ3kYg24It6xd w4DxdLz Gi4UnVgFH71QAT9GTj3TF01 S8fK9Vj dUZgLgcn5pdujMXv8OeU

Popular posts from this blog

Rothschild family

Cinema of Italy