如何获得我的程序崩溃的通知

时间:2015-04-15 10:13:07

标签: c# process

我写了一个BAT文件来运行我的程序十次。 但在某些时候,程序将崩溃。 我希望我能检测到这种情况然后关闭程序。 响应的c#进程无法知道此问题。

the picture of the problem

2 个答案:

答案 0 :(得分:2)

请参阅How do I specify the exit code of a console application in .NET?MSDN: Main() Return Values (C# Programming Guide).NET Global exception handler in console application

显示对话框是因为您没有捕获异常。你需要结合那里显示的所有内容,所以:

class Program {
    static void Main(string[] args) {
        AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;

        // Your code here
        throw new Exception("Kaboom");
    }

    static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) {
        Console.WriteLine(e.ExceptionObject.ToString());
        Environment.Exit(1);
    }
}

@echo off
TestExceptionApp
@if "%ERRORLEVEL%" == "0" goto good

:fail
    echo Execution Failed
    echo return value = %ERRORLEVEL%
    goto end

:good
    echo Execution succeeded
    echo Return value = %ERRORLEVEL%
    goto end

:end

答案 1 :(得分:0)

您必须编写一个单独的程序来创建捕获错误的新进程。捕获时,您可以在错误处理通知之前在catch语句中向自己发送通知。

它可能需要作为从本地用户系统调用的单独程序运行。