异常和错误有共同的超类,Throwable.

错误是程序没法处理的,比如虚拟机崩溃,无法为一个对象分配地址,栈溢出等等。这些错误有个共同点是程序无能为力,无法处理。

异常是程序能够处理的,异常分为编译期异常和运行期异常。

一。编译期异常是编译的时候出现的,也就是说通不过编译,必须处理。

二。运行期异常是编译能够通过,在运行的时候出现的。

运行期异常发生时,异常代码之后的代码不再执行(包含主函数中的相关代码和被调用函数的函数)。

处理方法:

a.被调用的方法自行解决

通过try---catch自行解决

如果不发生异常,则不会产生异常对象,也不进入catch语句块

如果发生异常,则会产生异常对象,也会进入catch语句块

b.向上抛,抛给调用端,由调用端进行处理异常

三。finally

finally关键字无论是否发生异常,最终都会执行,一般用于释放资源

四。编译期异常

编译期异常处理方法和运行期异常相同,也是自行处理和向上抛两种。

处理时,只要根据IDE提醒进行就行。

向上抛时,本级会有一个异常声明。上级还可以继续跑,知道抛到主函数为止。

运行期异常和编译期异常的一般处理原则:

运行期向上抛,编译期自行处理。

五。自定义异常

自定义异常一般用在运行期。

步骤:

1,创建一个异常类,继承自RuntimeException

2.继承RuntimeException的构造器

3.在其他方法中使用。一般为主动抛出异常,用如下代码段:

throw new SomeException(参数);