1.定义
中断了正常指令流的事件。异常是在运行错的(语法是正确的)。
2.分类
异常是一个对象,虚拟机生成的,类是由JDK提供。
Throwable是所有异常错误的父类。
Error:虚拟机运行时产生错误,程序员无能为力,程序员只能处理Exception。
Exception分为两大类:1、生成时异常;2、运行时异常
另外一种分类:
1、 un check exception(包括RuntimeException以及子类,编译可以通过)
2、 check exception(包含除了RuntimeException之外Exception的其他 子类 ,编译通不过)
3.处理:try…catch…finally(捕捉)
当一行代码有可能产生异常,而异常又是 check exception,java编译要求对 可能出现异常放进try。异常则进入catch。
finally是无论出不出异常都会执行,一般是用来释放资源。
只带有finally的try必须要声明异常。
有多个catch块时要从小排到大,大的是父类。
4.关键字。throw和throws
throw抛出异常对象,程序会中止(如果不用try catch),java虚拟机判断不了,可以抛出异常,通常是认为判断抛出的异常。
throws声明异常。其实是踢皮球public void setAge(int age) throws Exception,setAge()这个函数有可能产生异常,异常并不由于setAge()这个函数来处理,而是在调用真正调用 setAge()的时候处理(即谁调用谁处理),这个时候需要在调用函数的时候 用try catch处理。
可以声明多个异常,中间“,”隔开。
异常处理:
1、在一个函数里面,有可能会产生异常(check exception)时候。可以在函数内部用try catch把可能产生的异常的代码处理下。
2、也可以在函数后面声明throws + 异常类型。声明后该函数就没责任处理异常,而是由调用这个函数的地方try catch处理。