何时检查InnerException类及其派生类的Exception属性? Microsoft的“例外最佳实践”没有提供有关何时检查内部例外的任何建议。我应该只在异常被重新引发并被代码捕获时才这样做吗?即使将try-catch块之类的标准函数包含在System.IO.File.Move中,我也应该始终这样做吗?

最佳答案

谁会使用这种功能?

有时,开发人员会将一个异常(通常是Microsoft定义的一个异常)转换为另一个异常(通常是自己定义的异常)。

这样可以简化API,例如如您使用File.Move()给出的示例。代替了7种可能的Microsoft异常,这样的API可能只引发一个简单的“无法正常工作”的异常,其中包含详细信息,因此您的代码仅需要处理一种类型的异常。

什么时候使用?

在使用第三方框架时,我将在开发阶段对其进行研究。如果它们倾向于为空,则为其编写代码没有任何价值。

如果您编写记录器/跟踪器或通用调试输出,我肯定会考虑的。

我知道具有InnerException的异常:


TargetInvocationException
AggregateException

关于c# - 何时检查InnerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52094393/

10-13 06:56