「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」。
异常处理
一. 基本语句介绍
1.一个try语句块后必须跟catch语句块,finally 语句块可以没有
2.自定义异常类必须继Exception 类及其子类
3.异常处理机制允许根据具体的情况选择在何处处理异常,可以在try捕获并处理,也可以用throws子句把他交给上层处理
二.细节点
1. finally语句块中的代码总是被执行
2. 抛出异常应该使用的关键字是throw
3. 自定义异常类时,可以继承的类是Exception及其子类
4. 在异常处理中,将可能抛出异常的方法放在try语句块中
5. 对于try{……}catch子句的排列方式,下列正确的一项是子类异常在前,父类异常在后
6. 使用catch(Exception e)的好处是捕获try语句块中产生的所有类型的异常
三.异常中的问答
1.try/catch/finally如何使用?
Try:将可能出现异常的语句放在此处。
Catch:当出现异常时在此处捕获异常。
Finally:无论是否出现异常都要执行。
2.Throw/throws有什么联系和区别?
Throw:在语句中抛出异常。
Throws:在方法中出现异常之后抛到调用方法中处理。
联系:都是对于异常的处理。
3.如何自定义异常类? `try{//需要检测的代码(异常抛出不确定) }catch(ArithmeticException) {
} finally{//一定会被执行的代码 }` 4.谈谈final、finally的区别和作用
final:修饰变量是定义常量,修饰类是不允许继承,修饰方法是不允许复写。
finally:使用在异常处理中,无论是否出现异常都要执行。
5.如果try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?会运行。
6.Error和Exception有什么区别?(重要)
当程序出现错误的时候就会抛出异常,异常需要被用户所捕获。
Error:一般是出现的编译器的异常,不可以恢复。
Exception:一般是出现的代码异常,是可以被处理的,可以被恢复的。
7.什么是RuntimeException?列举至少4个RuntimeException的子类
ArithmeticException
NullPointerException
ArrayIndexOUtOfBoundsException
ClassCastException