异常是一个对象,描述了一段代码中出现的不正常情况。
Throwable是所有错误和异常的超类。
一.Error和Exception的区别和联系。
1.Error:错误,不编写针对性的代码。如内存溢出,找不到文件。
2.Exception:异常,编写针对性代码处理。如转型异常,丢失数据异常。
二.异常的处理方式:
1.捕获异常:try...catch ,直接处理可能出现的异常。
先捕获小异常再捕获大异常。异常处理后,程序不会退出。
2.抛出异常:throws , 声明告诉调用者可能的异常,由调用者来处理。
三.异常的分类
1.编译时异常。非Runtime异常。要么抛出,要么处理。,
2.运行时异常。Runtime异常。无需使用throws关键字或try..catch语句
四.throw和throws的区别
1.throw 用于方法体内,抛出一个具体的异常类对象。throw后面跟异常对象,只能是一个。
通过throw抛出异常后:
若想由上一级代码来捕获并处理异常,则同样需要在抛出异常的方法声明中使用throws关键字声明要处理的异常。
若想在当前方法中捕获并处理throw抛出的异常,则必须使用try..catch语句。
2.throws用于方法上,声明该方法可以抛出的(不处理的)异常。throws后面跟异常类名,可是多个异常。多个异常可用逗号分隔。
五.finally代码块
1.finally语句中的代码块一定会执行。通常在finally语句中进行资源的清除动作,如关闭资源。
2.finally代码块只在一种情况下不执行,System.exit(0);