C# 如何在asp.net mvc中处理未观察到的异常

C# 如何在asp.net mvc中处理未观察到的异常,c#,asp.net,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc 4,我特别想问的是如何处理未观察到的异常,而不是未处理的异常。这个问题也不同于询问如何激发并忘记异步方法,而不是如何处理未观察到的异常,尽管它们是相关的 未观察到的异常是由以下示例引起的类型,取自: 作为一项规则,我试图避免这种情况,但如果发生这种情况,我不希望我的网站意外退出,也不希望这些异常被默默地吞噬。我至少想在一个地方处理它们并记录它们。我不想用艾玛 现在,我认为我们可以从以下几个方面做类似的事情: 但是,我的问题是:- 把它放在哪里,可以放在应用程序_Start()中吗 这些未观察到的异

我特别想问的是如何处理未观察到的异常,而不是未处理的异常。这个问题也不同于询问如何激发并忘记异步方法,而不是如何处理未观察到的异常,尽管它们是相关的

未观察到的异常是由以下示例引起的类型,取自:

作为一项规则,我试图避免这种情况,但如果发生这种情况,我不希望我的网站意外退出,也不希望这些异常被默默地吞噬。我至少想在一个地方处理它们并记录它们。我不想用艾玛

现在,我认为我们可以从以下几个方面做类似的事情:

但是,我的问题是:-

  • 把它放在哪里,可以放在应用程序_Start()中吗
  • 这些未观察到的异常是否会进入应用程序_Error()?如果是这样,您如何识别它们或防止它们出现在应用程序错误中

类似,但没有令人满意的答案/解释。

请参见[此][1]链接,了解他们如何处理未观察到的异常[1]:啊,太好了。谢谢。实际上,那个链接指的是我无法访问的图书馆。但是,我上面的UnobservedTaskException代码确实有效。
Task op1 = FooAsync(); 
Task op2 = BarAsync(); 
await op1; 
await op2;
TaskScheduler.UnobservedTaskException += (sender, e) => 
{ 
    Console.WriteLine("Saving the day! This exception would have been unobserved: {0}", 
                      e.Exception); 
    e.SetObserved(); 
};