异常处理

136 阅读2分钟

「这是我参与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