-1

プログラムが「動作を停止しました」とだけ言うのではなく、プログラムのすべての例外をキャッチして MessageBox に表示できるようにしたいと考えています。

何らかの理由で、ソフトウェアで何かが失敗するたびに、プログラムは動作を停止したと言います。Visual Studio のように MessageBox で表示できるようにしたいです。それはどのように可能ですか?

C# ウィンフォーム。

4

5 に答える 5

2

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();
}
于 2013-09-24T07:03:45.513 に答える
0

これを試して:

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

于 2013-09-24T07:09:03.880 に答える
0

Global.asaxの Application_Error メソッドは、キャッチする最後のチャンスです。

protected void Application_Error(Object sender, EventArgs e)
于 2013-09-24T07:03:57.583 に答える
0

次のようなものを試してください:

public Form1()
        {
            InitializeComponent();
            AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException;
        }

        private void HandleUnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            MessageBox.Show("Exception {0} was thrown", e.ToString());
        }
于 2013-09-24T07:07:05.883 に答える