我在 .NET/C# 建议的异常处理原则 中描述了如何 catch 异常以及重新 throw.然而何时应该 throw 异常,以及应该 throw 什么异常呢? 究竟是谁错了? 代码中从上到下从里到外都是在执行一个个的包含某种目的的代码,我们将其称之为“任务”.当需要完成某项任务时,任务的完成情况只有两种结果: 成功完成 失败 异常处理机制就是处理上面的第 2 种情况.这里我们不谈论错误码系统,那么,异常便应该在任务执行失败时抛出异常. 抛出异常后,报告错误只是手段,真正要做的是帮助开发者修复错…