黑马程序员技术交流社区

标题: 如果总是少捕获异常,学会尝试Exception类捕获所有的异常。 [打印本页]

作者: 古典牧童    时间: 2015-4-21 19:47
标题: 如果总是少捕获异常,学会尝试Exception类捕获所有的异常。
如果总是少捕获异常,可以尝试Exception类捕获所有的异常。那么,这个技术有什么好处和缺点?
好处就是:不管发生什么异常,都能进入Exception catch块儿,这样,程序都不崩溃。
缺点就是:不能根据特定的异常做特定的处理。例如,对于以下例子,我们可以用Exception来捕获所有的异常,从而达到程序不崩溃的目的。因为Exception是所有其他异常的父类。


public class Test {
    public static void main(String[] args) {
        int arg1;
        int result;
        String s="abc";
    //    String s="12";
        try {
            arg1 = Integer.parseInt(s);
            result = arg1 /0;
            System.out.println("try中完成finish");
        }
        catch (Exception e) {
            System.out.println(e);
        }
        System.out.println("优雅结束");
    }
}

输出结果:
java.lang.NumberFormatException: For input string: "abc"
优雅结束

public class Test {
    public static void main(String[] args) {
        int arg1;
        int result;
    //    String s="abc";
        String s="12";
        try{
              arg1=Integer.parseInt(s);
              result = arg1/0;
              System.out.println("try中 完成finish");
        }
         catch(Exception e){
              System.out.println(e);
         }
         System.out.println("优雅结束");
     }
}

输出结果:
java.lang.ArithemticException:  /by zero
优雅结束

虽然Exception能够捕获所有异常,但是并不能根据特定的 异常做 特定处理。这种粗放的对待所有异常的方式在实际中效率并不高,所以实际情形中,一般选择把Exception作为其他异常处理的补充方案,两者结合使用,以保证程序不会崩溃。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2