建议:避免不必要的使用受检的异常。

阳光穿透心脏的1/2处 2024-02-18 21:40 159阅读 0赞

受检的异常是Java设计语言的一项很好的特性。与返回代码不同,他们强迫程序员处理异常的条件,大大增强了可靠性。也就是说,过分使用受检的异常会使API使用起来非常不方便。如果方法抛出一个或者多个受检的异常,或者他必须声明他抛出这些异常,并让他们传播出去。无论哪种方法,都给程序员增添了不可忽视的负担。
如果正确的使用API并不能组织这种异常条件的产生,并且一点产生异常,使用API的程序员可以立即采取有用的工作,这这哦那个负担就被认为是正当的。除非这两个条件都成立,否则更适合于使用未受检的异常。
在实践中,catch块几乎总是具有断言失败的特征。异常受检的本质并没有为程序员提供任何好处,他反而需要付出努力,还使程序更为复杂。
被一个方法单独抛出的受检异常,会给程序员带来非常高的额外负担。如果这个方法还有其他的受检异常,他被调用的时候一定已经出现在一个try块中,所以这个异常只需要另外一个catch块。如果方法只抛出单个受检的异常,仅仅一个异常就会导致该方法不得不外于try块中,在这些情况下,应该问自己,是否有别的途径来避免使用受检的异常。
“把受检的异常编程未受检的异常”的一种方法是,把这个抛出异常的方法分成两个方法,其中第一个方法返回一个boolean,表明是否应该抛出异常。

发表评论

表情:
评论列表 (有 0 条评论,159人围观)

还没有评论,来说两句吧...

相关阅读

    相关 异常和非异常

    `受检异常`主要指编译时强制检查的异常,包括非受检异常之外的其他 Throwable 的子类; `非受检异常`主要指编译器免检异常,通常包括运行时异常类和 Error相关类