异常Exception

1、什么是异常

  异常是程序在“编译”或者“执行”的过程中可能出现的问题;

  异常是应该尽量提前避免的,研究异常并且避免异常,然后提前处理异常,体现的是程序的安全,健壮性;

2、异常体系

  Java中异常继承的根类是:Throwable(根类,不是异常类)

    Error:严重错误,内存泄漏,JVM错误,管不了;

    Exception(异常,需要研究和处理):

      编译时异常:;

      RuntimeException(运行时异常):

        数组索引越界异常:ArrayIndexOutOfBoundsException;

        空指针异常:NullPointerException;

        类型转换异常:ClassCastException;

        。。。。。。

3、编译时异常处理

  3.1 方式一:

    出现异常层层抛出,谁都不处理,最终抛出给虚拟机。这种方式虽然可以解决编译时异常,但是如果异常真的出现了,程序会直接死亡,所以这种方式并不好;

  3.2 方式二: 

    在出现异常的地方自己处理,谁出现谁处理;
    try{

      代码。。。

    }catch(Exception e){
      e.printStackTrace();
    }

  3.3 方式三(规范做法):

    在出现异常的地方把异常一层一层的抛出给最外层调用者,最外层调用者集中捕获异常。

4、运行时异常处理

  运行时异常编译阶段不报错,可以处理也可以不处理,建议处理;

  运行时异常可以自动抛出,不需要我们手工抛出;

  直接在最外层捕获统一处理即可,底层会自动抛出;

原文地址:https://www.cnblogs.com/xp2h/p/12519582.html