我怎样才能得到我的程序崩溃的通知
How can I get notification that my program has crashed
我已经将 BAT 文件写入 运行 我的程序十次了。
但在某些时候,程序会崩溃。
我希望我能检测到这种情况然后关闭程序。
Responding的c#进程不知道这个问题。
参见How do I specify the exit code of a console application in .NET?, MSDN: Main() Return Values (C# Programming Guide) and .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
您必须编写一个单独的程序来创建一个捕获错误的新进程。捕获后,您可以在错误处理通知之前的捕获语句中向自己发送通知。
它可能需要 运行 作为从本地用户系统调用的单独程序。
我已经将 BAT 文件写入 运行 我的程序十次了。 但在某些时候,程序会崩溃。 我希望我能检测到这种情况然后关闭程序。 Responding的c#进程不知道这个问题。
参见How do I specify the exit code of a console application in .NET?, MSDN: Main() Return Values (C# Programming Guide) and .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
您必须编写一个单独的程序来创建一个捕获错误的新进程。捕获后,您可以在错误处理通知之前的捕获语句中向自己发送通知。
它可能需要 运行 作为从本地用户系统调用的单独程序。