Java基础---异常和异常处理
分类:
文章
•
2022-11-07 16:32:33
Java异常体系
|——Throwable (实现类描述java的错误和异常--超类)
|——Error (错误)一般不通过代码去处理。
|——Exceprion (异常) 代码处理
|——RuntimeException (运行时异常)
|——编译时异常(非运行时异常,受检异常)
![Java基础---异常和异常处理 Java基础---异常和异常处理](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwMS85ZDI4NDAwODhjNDkwYWQ1NDU1MDliMDM4N2MzZDk2MS5KUEVH)
两类异常注意:
1.方法内部抛出一个运行时异常对象,方法可以声明抛出也可不声明抛出
2.方法内部抛出一个编异时异常对象,方法必须要声明抛出
3.调用一个声明抛出运行时异常类型的方法,调用者可处理也可不处理
4.调用一个声明抛出编译时异常类型的方法,调用者必须要处理
以Error结尾代表错误,以Exception结尾代表异常
---------------------------------------------------------------------------------------------------------
Throwable类 (所有异常与错误的父类)
Throwable常用的方法:
1. toString() 返回描述该异常情况的类的完整类名 = 包名 + 类名
2. getMessage() 返回创建Throwable对象的时候传入的消息字符串
3. printStackTrace() 打印异常的栈信息
异常的处理方式:捕获处理 抛出处理
方式一:捕获处理 try...catch
捕获处理的格式:
try{
可能会发生异常的代码
}catch(异常的类型 变量名){
异常处理代码;
}
捕获处理要注意的细节:【month201809.Demo1】【month201809.Demo2】
1. try块的代码出现的异常处理之后,try-catch块外面的代码可以正常执行
2. try块中出现了异常代码,则try块中异常代码后的所有代码无法正常执行
3. try块后面可以有多个catch块,但捕获的异常类型必须按照从小到大
Exception可以捕获任意类型的异常,是因为Exception是所有异常类的父类(包治百病)
----------------------------------------------------------------------------------------------------------
方式二:抛出处理 throws throw
适应情况:方法内部不想处理,或处理不了。扔出去
抛出处理注意:
1. 方法内部抛出编译时异常对象时,必须在方法上声明抛出throws。
2. 调用一个声明抛出编译时异常类型的方法,调用者必须进行异常处理
3. 一个方法如果遇到了throw关键字,则该方法会马上停止执行后面代码。
throw与throws区别:
1. throw用在方法内部,抛出异常对象;throws用在方法声明,抛出异常类型
2. throw后只抛出一个异常对象(一次只一个),throws后跟异常类型(一次可多个)
抛出处理和捕获处理处理方式选择:
如果需要告知调用者出了异常,则需使用抛出处理
如果与用户(web层)的代码,则使用捕获处理
----------------------------------------------------------------------------------------------------------
自定义异常类: 自定义一个类继承Exception即可
【month201809.Demo3】