プログラムが「動作を停止しました」とだけ言うのではなく、プログラムのすべての例外をキャッチして MessageBox に表示できるようにしたいと考えています。
何らかの理由で、ソフトウェアで何かが失敗するたびに、プログラムは動作を停止したと言います。Visual Studio のように MessageBox で表示できるようにしたいです。それはどのように可能ですか?
C# ウィンフォーム。
ThreadException および CurrentDomain.UnhandledException を購読する
static void Main(){
Application.ThreadException += ApplicationThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
}
static void ApplicationThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
ShowGenericErrorMessage();
}
static void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
ShowGenericErrorMessage();
}
これを試して:
try
{
\\Code block
}
catch(Exception ex)
{
\\the object ex has details about the exception use it display the error in msg box
}
また、このリンクでは例外処理について簡単に説明しています: http://www.dotnetperls.com/exception
Global.asaxの Application_Error メソッドは、キャッチする最後のチャンスです。
protected void Application_Error(Object sender, EventArgs e)
次のようなものを試してください:
public Form1()
{
InitializeComponent();
AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException;
}
private void HandleUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show("Exception {0} was thrown", e.ToString());
}