首页 > 基础资料 博客日记
【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~
2023-09-19 17:53:21基础资料围观265次
这篇文章介绍了【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~,分享给大家做个参考,收藏Java资料网收获更多编程知识
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://blog.csdn.net/LVSONGTAO1225/article/details/131803102
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: