0

未処理の例外ハンドラを動作させようとしていますが、何もしていないようです。コンストラクターで次のことを行う必要があります。

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

そして、これはさらに下に

static void MyHandler(object sender, UnhandledExceptionEventArgs args)
    {
        Exception e = (Exception)args.ExceptionObject;
        if (log != null)
        {
            if (args.IsTerminating)
                log.LogError(e.Message, e.Source, e.InnerException.Message);
            else
                log.LogWarning(e.Message, e.Source, e.InnerException.Message);
        }
        else
        {
            System.Reflection.Assembly exe = System.Reflection.Assembly.GetEntryAssembly();
            string exeDir = System.IO.Path.GetDirectoryName(exe.Location);
            File.WriteAllText(DocuPath.Join(exeDir, "Emergency.log"), e.ToString());
        }
    }

log は、ファイルへのロギングを処理する静的オブジェクトです。オブジェクトによって書き込まれたログ ファイルまたは Emergency.log にメッセージが表示されないのはなぜですか?

4

1 に答える 1