【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~
•
Jave
Java练习题 · 异常处理篇
- 1️⃣ 异常处理篇
- 2️⃣ 答案
1️⃣ 异常处理篇
一、填空题
- Throwable 下的两个子类是______________ 、______________ 。
- ArthmeticException 类表示______________ 异常, ArraysIndexOutOfBoundsException 表示______________ 异常。
- 一个 try 代码后面必须跟着若干个_______ 代码段或者一个_______ 代码段。
- 如果一个方法使用了_______ , 则编译器会强制在使用此方法时进行异常的处理。
- 异常处理中使用_______ 作为异常的统一出口。
二、选择题
-
使用( )关键字可以在程序中手工抛出异常。
A. throws
B. throw
C. assert
D. class
-
下面( )关键字可以用在方法的声明处。
A. throws
B. assert
C. class
D. interface
-
为了捕获一个异常,代码必须放在下面( )中。
A. try 块
B. catch块
C. throws块
D. finally 块
-
下面关于try块的说法正确的是( )。
A. try块后至少应有一个 catch块
B. try 块后必须有finally 块
C. 可能抛出异常的方法应放在try块中
D. 对抛出的异常的处理应放在try块中
-
finally 块中的代码将( )。
A. 总是被执行
B. 如果 try块后面没有 catch 块时, finally 块中的代码才会执行
C. 异常发生时才被执行
D. 异常没有发生时才执行
-
一个异常将终止( )。
A. 整个程序
B. 只终止抛出异常的方法
C. 产生异常的 try块
D. 上面的说法都不对
-
所有异常的共同父类是( )。
A. Error
B. Exception
C. Throwable
D. RuntimeException
三、判断题
- 一个try语句后有多个catch 时,捕获范围大的异常要放在捕获范围小的异常之后。 ( )
- finally 语句可以根据需要有选择地添加。 ( )
四、 简答题
- 简述 RuntimeException 和 Exception 的区别。
- try、catch、finally 三种语句的功能是什么?
- 简述Java 中的异常处理机制。
- 简述 Error 和 Exception 的区别。
- 列举三个常见的 RuntimeException 子类。
五、 编程题
- 编写应用程序,从命令行输入两个小数参数,求它们的商。要求程序中捕获 NumberFormatException 异常和 ArithmeticException 异常。
2️⃣ 答案
一、填空题
- Error、Exception
- 算术异常, 数组索引越界异常
- catch,finally
- throws
- finally
二、选择题
- ( B )
- ( A )
- ( A )
- ( C )
- ( A )
- ( B )
- ( C )
三、判断题
- (√)
- (√)
四、简答题
-
RuntimeException 和 Exception 的区别如下:
- RuntimeException 是 Exception 的子类,属于不受检异常(Unchecked Exception)。
- RuntimeException 及其子类是由程序错误或逻辑错误引起的异常,通常是可以被避免的异常。
- Exception 除了 RuntimeException 及其子类外,还包括其他的受检异常(Checked Exception)。
- 受检异常需要在方法声明中明确地进行处理或抛出,否则编译器会报错,要求进行异常处理。
-
三种语句的功能如下:
- try 块:包含可能抛出异常的代码,并用于标识需要进行异常捕获和处理的代码块。
- catch 块:用于捕获并处理特定类型的异常,在 try 块中抛出异常时,可以根据异常的类型在相应的 catch 块中执行对应的处理逻辑。
- finally 块:无论是否发生异常,都会执行的代码块。通常用于释放资源或保证某些操作被执行。
-
Java 中的异常处理机制如下:
- 异常是在程序执行过程中出现的不正常情况,可以分为两类:已检查异常(Checked Exception)和未检查异常(Unchecked Exception)。
- 已检查异常需要在方法声明中明确地进行处理或抛出,由开发人员根据需要决定如何处理异常。
- 未检查异常是由程序错误或逻辑错误引起的异常,通常是可以被避免或修复的异常,不要求强制性处理。
- 异常可以使用 try-catch 块捕获并处理,也可以使用 throws 关键字将异常抛给上层调用者处理。
- 可以在 catch 块中根据异常类型进行不同的处理逻辑,或者在 finally 块中进行必要的清理和释放资源操作。
-
Error 和 Exception 的区别如下:
- Error 是 Throwable 的子类,表示严重错误或系统错误,通常是无法恢复或继续执行的错误。
- Error 表示的是 JVM 或者硬件等环境相关的错误,开发人员一般无法通过代码来直接处理 Error。
- Exception 是 Throwable 的另一个子类,包括了程序运行过程中可能出现的可处理的异常情况。
- Exception 可以根据情况进行捕获和处理,或者继续抛出以便上层调用者处理。编译器会强制要求对受检异常进行处理。
-
常见的 RuntimeException 子类包括:
- NullPointerException: 空指针异常,当变量引用为 null 时进行操作会抛出此异常。
- IllegalArgumentException: 非法参数异常,当传递给方法的参数不满足要求时抛出。
- IndexOutOfBoundsException: 索引越界异常,当使用非法的索引访问数组或集合时抛出。
五、 编程题
-
代码如下:
import java.util.Scanner; public class DivideNumbers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); try { System.out.print("请输入被除数: "); double dividend = Double.parseDouble(scanner.nextLine()); System.out.print("请输入除数: "); double divisor = Double.parseDouble(scanner.nextLine()); double quotient = divide(dividend, divisor); System.out.println("商为: " + quotient); } catch (NumberFormatException e) { System.out.println("输入的参数不是有效的小数格式"); } catch (ArithmeticException e) { System.out.println("除数不能为0"); } scanner.close(); } public static double divide(double a, double b) { return a / b; } }

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/5254605a9f.html
