何时检查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/