c#中的全局异常处理(控制台应用程序)

时间:2012-12-08 14:15:30

标签: c# exception-handling

  

可能重复:
  .NET Global exception handler in console application

我已经阅读了很多有关stackoverflow上的全局异常处理的内容,但我找不到任何正确引用我的主题的内容。我编写了一个控制台应用程序,它只在它们发生的方法中捕获异常。完全没有投掷。我想要的是全局异常处理。我没有关于异常处理的基本指导,但除了那些基础知识之外不知道。想象一下,应该有一个类处理这些异常(由不同类中的方法抛出)。我还不需要任何错误记录或错误报告机制。只需要基础知识(模式无论......)来实现这种全局处理。感谢您的阅读!

1 个答案:

答案 0 :(得分:3)

全局处理异常仅适用于某些任务,例如记录错误或正常退出应用程序。

在所有其他情况下,建议您在最相关的位置处理异常。例如,如果您从应用程序进行Web服务调用,并且该服务不可用,则应该在进行Web服务调用时处理该异常,而不是全局捕获它。这提高了代码的可读性,而且在全局级别做任何合理的事情都是不切实际的,因为您几乎没有关于异常起源的信息。 (当然你有堆栈跟踪,但它不能用于编程操作)

但是,您可以通过将处理程序附加到AppDomain.UnhandledException来添加应用程序范围的异常处理程序,如@Jesse的注释中所示