0

以下に示すように、未処理のスレッド例外と未処理の例外をサブスクライブしました

public partial class ICEView : Form
{

    public ICEView()
    {
        InitializeComponent();

        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);
        Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException);
    }
}

以下のリンクのように、エラー メッセージを表示する例外ハンドラに入らずに、アプリケーションがクラッシュすることがあります。しかし、表示されたエラー メッセージには [デバッグ] ボタンがありません。メッセージ ボックスを表示する理由は何でしょうか。

http://www.computerhope.com/issues/pictures/winerror.jpg

4

1 に答える 1

2

Mainフォームの前に Program.csのメソッドに例外ハンドラーを追加するか、InitializeComponentメソッドの前に例外ハンドラーを追加してみてください。

[STAThread]
static void Main()
{
    Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException);
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);

    Application.Run(new ICEView());
}
于 2012-05-14T09:10:10.723 に答える