一、什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。

二、关键词
try:执行可能产生 异常的代码
catch:捕获异常
finally:无论是否发生异常, 代码总能执行
throws:声明方法可能要 抛出的各种异常
throw:手动抛出异常
try-catch:
使用try-catch块捕获异常,分为三种情况
第一种情况 :try块中所有语句正常执行完毕,不会发生异常,那么catch块中的所有语句都将会被忽略。
第二种情况 :try语句块在执行中遇到异常,那么在try块中其余剩下的代码都将被忽略,系统会自动生成相应的异常对象,如果这个异常对象与catch中声明的异常类型相匹配,则相应的catch块将会被执行。
第三种情况 :try语句块在执行中遇到异常,如果这个异常对象与catch中声明的异常类型不匹配,程序会中断。
在catch块中处理异常
加入用户自定义处理信息
System.err.println();
三、常见的异常类型

引发多种类型的异常
排列catch 语句的顺序:
先子类后父类
发生异常时按顺序逐个匹配
只执行第一个与异常类型匹配的catch语句
public void method(){
try {
// 代码段
// 产生异常(异常类型2)
} catch (异常类型1 ex) {
// 对异常进行处理的代码段
} catch (异常类型2 ex) {
// 对异常进行处理的代码段
} catch (异常类型3 ex) {
// 对异常进行处理的代码段
}
// 代码段
}
面试题:
try-catch块中存在return语句,是否还执行finally块,如果执行,说出执行顺序?
finally先执行,然后再执行return。
try-catch- finally块中, finally块唯一不执行的情况是什么?
虚拟机被关闭。
四、声明异常
Java语言中通过关键字throws声明某个方法可能抛出的各种异常。
throws可以同时声明多个异常,多个异常用逗号隔开。

五、抛出异常
Java语言中通过关键字throw来自行抛出异常。

面试题:
throw和throws的区别表现在以下三个方面
作用不同:
throw用于在程序中抛出异常;
throws用于声明在该方法内抛出了异常。
使用的位置不同:
throw位于方法体内部,可以作为单独语句使用;
throws必须跟在方法参数列表后面,不能单独使用。
内容不同:
throw抛出一个异常对象,而且只能是一个;
throws后面跟异常类,而且可以跟多个异常类。
异常的分类

Errory与Exception的区别:
答:都继承与Throwable这个类
Error是java程序在编译阶段出现的问题,代码将无法通过编译
Excpetion是java程序在运行阶段出现的问题,能通过编译,但是不能正常运行
六、自定义异常
1.定义异常类 (继承Throwable类、继承Excepion 或者RuntimeException)
2.编写构造方法,继承父类的实现
3.实例化自定义异常对象
4.使用throw抛出
异常处理原则
异常处理与性能
异常只能用于非正常情况
不要将过于庞大的代码块放在try中
在catch中指定具体的异常类型
需要对捕获的异常做处理
总结

本文详细介绍了Java中的异常处理机制,包括try-catch-finally语句块的使用、异常类型的匹配规则以及如何自定义异常。强调了异常处理的原则,如避免庞大的try块和指定具体异常类型。同时,阐述了Error与Exception的区别,并提供了面试题解析。
4828

被折叠的 条评论
为什么被折叠?



