异常

异常的简单继承关系:
异常
Exception为强制执行的异常:不执行会报错误,如IOException、ClassNotFoundException,不解决的话会报错误。

没有执行异常的情况
异常
执行的情况:
异常
RuntimeException为非强制执行的异常:可以不执行不会报错误,如ArrayIndexOutOfBoundsException、IndexOutOfBoundsException(数组下标越界),只有当出现情况后,没有写捕捉异常的代码,JVM会使用默认方式自动报错误,终止程序运行。

不写try…cacth也没事没有出现错误直接过,只有当出现错误时才会报出错误,终止程序:
异常
JVM对于异常的处理:当可能为错误代码,没有被try{ }catch{ }包住的时候,JVM默认报出异常和位置,然后结束程序的运行,包了但错误内没有报的错误JVM也会采取默认的方法,所以一般在最后写父类Exception保证异常都会被拦截。

异常的写法:在方法内使用try{ 可能出现错误的代码 }catch(异常类型 e){ }finally{ }。

final:只要在final内的代码不管try…catch内有没有错误都会执行,用于IO一般写关闭流数据。

自定义异常:自定义异常继承Exception和RuntimeException,同时也会继承相应的特性,强制执行和非强制执行。
异常
thows:用在方法声明上进行异常抛出(可以多个),让其他类去解决异常(调用),最低也要在main()内解决。

throw:用在方法内当出现错误进行异常抛出。