第五十九条 避免不必要地使用受检的异常


受检的异常是java程序的一个很好的特性,使用它可以大大提高代码的可靠性,但如果大量使用异常,则会给代码的结构带来不方便,如果声明了大量的异常,都需要在抛出异常的地方添加相对应的处理代码,这会给开发者带来很大的负担。异常这个东西,不能过分依赖。就像药一样,药能治病,但是医药三分毒。健康的一个人,可以通过穿衣服保暖,就决不要去吃药维持体温。我们使用异常时,需要满足以下条件,

一、正确的使用了api,但还不能阻止异常的发生;天气很冷,你已经穿了厚厚的衣服,但还是感冒了,这时候就吃药吧,没办法。
二、一旦产生异常,我们马上可以采取相对应的措施。

就像前几条的知识,

            try {
            int i = 0;
            while (true){
                range[i++].climb();
            }
        }catch (ArrayIndexOutOfBoundsException e){

        }
这个就属于不必要的异常,我们就通过for循环即可解决问题;另外一种,书中的例子

        try {
            obj.action(args);
        } catch(TheCheckedException e) {
            //处理异常...
        }

意思是不管有没有这个权限,都去掉用action(args),如果没权限,就通过受检异常来保护,这样写业务逻辑不会出错,但不符合代码规范,所以可以提供一个方法,是否有权限,如果有,执行action(args),如果没有,执行异常处理,这样条理清晰

        if(obj.actionPermitted(args)) {
            obj.action(args);
        } else {
             //处理异常...
        }

代码重要的是结构合理清晰,这样便于扩展。清晰的结构就是进行判断分流,按照逻辑,一层层分下去,每个支杆都有对应的逻辑处理,这样,清晰简洁,以扩展。


 

猜你喜欢

转载自blog.csdn.net/Deaht_Huimie/article/details/83832518