异常和错误有共同的超类,Throwable.
错误是程序没法处理的,比如虚拟机崩溃,无法为一个对象分配地址,栈溢出等等。这些错误有个共同点是程序无能为力,无法处理。
异常是程序能够处理的,异常分为编译期异常和运行期异常。
一。编译期异常是编译的时候出现的,也就是说通不过编译,必须处理。
二。运行期异常是编译能够通过,在运行的时候出现的。
运行期异常发生时,异常代码之后的代码不再执行(包含主函数中的相关代码和被调用函数的函数)。
处理方法:
a.被调用的方法自行解决
通过try---catch自行解决
如果不发生异常,则不会产生异常对象,也不进入catch语句块
如果发生异常,则会产生异常对象,也会进入catch语句块
b.向上抛,抛给调用端,由调用端进行处理异常
三。finally
finally关键字无论是否发生异常,最终都会执行,一般用于释放资源
四。编译期异常
编译期异常处理方法和运行期异常相同,也是自行处理和向上抛两种。
处理时,只要根据IDE提醒进行就行。
向上抛时,本级会有一个异常声明。上级还可以继续跑,知道抛到主函数为止。
运行期异常和编译期异常的一般处理原则:
运行期向上抛,编译期自行处理。
五。自定义异常
自定义异常一般用在运行期。
步骤:
1,创建一个异常类,继承自RuntimeException
2.继承RuntimeException的构造器
3.在其他方法中使用。一般为主动抛出异常,用如下代码段:
throw new SomeException(参数);