我有一个服务管理器,用于检查和控制与其连接的服务。但有时我的一项服务被压垮了,服务经理无法知道它是否仍然有效。 (由于显示调试和关闭选项的对话框)。所以我找到了一个可以接受未处理异常的公认解决方案,但在我的代码中没有用。 这是我的代码,它没有捕获未处理的异常。
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(unhandled_exceptions);
new Thread(() =>
{
start()
}).Start();
}
public void unhandled_exceptions(object sender, UnhandledExceptionEventArgs e)
{
this.disconnect();
logger.Error(e);
logger.Info("Catched unhandled exception, that causes to crash application. Disconecting from service manager..");
Environment.Exit(1);
}
public override void start()
{
try
{
throw new ArgumentException("erer");
}
catch (Exception ex)
{
logger.Error(ex);
}
Thread.Sleep(5000);
PerformOverflow();
}
void PerformOverflow()
{
PerformOverflow();
}
.Net 4.6,控制台应用
我不知道导致我的应用程序崩溃的原因,实际上start方法是在try catch博客中。我正在使用StackOverflowException,因为它也没有未处理。我想如果我抓住它,我可以抓住真正的一个崩溃我的应用程序。