如何在C#中捕获未处理的异常

时间:2017-08-28 10:38:23

标签: c# .net-4.6

我有一个服务管理器,用于检查和控制与其连接的服务。但有时我的一项服务被压垮了,服务经理无法知道它是否仍然有效。 (由于显示调试和关闭选项的对话框)。所以我找到了一个可以接受未处理异常的公认解决方案,但在我的代码中没有用。 这是我的代码,它没有捕获未处理的异常。

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,因为它也没有未处理。我想如果我抓住它,我可以抓住真正的一个崩溃我的应用程序。

0 个答案:

没有答案