11
执行错误处理的现代方法…
我已经思考了一段时间了,发现自己不断发现警告和矛盾,因此我希望有人可以得出以下结论: 优先于错误代码的异常 据我所知,在从事该行业工作四年,阅读书籍和博客等之后,当前处理错误的最佳实践是抛出异常,而不是返回错误代码(不一定返回错误代码,而是返回错误代码)。类型代表错误)。 但是-对我来说这似乎是矛盾的... 编码接口,而不是实现 我们对接口或抽象进行编码以减少耦合。我们不知道或不想知道接口的特定类型和实现。那么,我们怎么可能知道应该寻找哪些异常呢?该实现可以抛出10个不同的异常,也可以不抛出任何异常。当我们确实捕获到异常时,我们正在对实现进行假设? 除非-接口具有... 异常规格 某些语言允许开发人员声明某些方法会引发某些异常(例如,Java使用throws关键字。)从调用代码的角度来看,这似乎很好-我们明确知道可能需要捕获哪些异常。 但是-这似乎表明... 泄漏抽象 为什么接口应该指定可以引发哪些异常?如果实现不需要引发异常或引发其他异常怎么办?在接口级别,无法知道实现可能要抛出的异常。 所以... 总结一下 当异常(在我看来)与软件最佳实践相矛盾时,为什么还要优先考虑它们?而且,如果错误代码非常糟糕(并且我不需要在错误代码的恶习上卖掉),还有其他选择吗?满足(如上所述)最佳实践要求但不依赖于调用代码检查错误代码返回值的错误处理技术的当前(或即将成为最新技术)是什么?