java 异常
异常
程序在执行过程中发生的不正常情况称之为"异常",可分为两类:
- Error:java 虚拟机无法解决的严重问题,程序会崩溃;
- Exception:因为编程错误,或者偶然的外在因素导致的一般性问题,分为两种:
- 运行时异常;
- 编译时异常;
异常体系分布:
- Throwable extends Object implements Serializable
- Error:错误,程序崩溃;
- Exception:异常
- 编译时异常:否则编译不通过;
- RuntimeException:运行时异常,jvm运行不通过;
异常处理方式:
- throws:将发生的异常抛出去,比如编译异常,需要显式抛出,但是运行异常,当没有异常处理时,是默认调用throws,交给上一级进行处理;
- try-catch-finally:捕捉异常,处理异常;
- try-finaly:捕捉异常,在程序挂掉之前执行 finally代码块;
- try-catch:有异常执行catch代码块,否则跳过;
- try-catch-finally:捕捉异常,然后执行catch代码块,再执行finally代码块;
- 当catch代码块有return语句时,会将返回数据使用一个临时变量temp保存,然后再执行finally代码块,最后再执行return temp;
- 当catch 和 finally中均有return语句时,一个方法只执行一个return,所以会执行 finally的代码块;
- throws处理异常时的注意事项:
- 编译异常必须处理,使用 try-catch 或者 throws;
- 运行异常,没有处理,默认是调用throws,直到返给jvm;
- 子类重写父类方法的时候,抛出异常类型要么和父类抛出异常一致,要么为父类异常类型的子类型;

浙公网安备 33010602011771号