异常
异常的简单继承关系:
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:用在方法内当出现错误进行异常抛出。