如何在 Java 9 中处理 JShell 中的异常?

javaobject oriented programmingprogramming更新于 2024/5/6 14:47:00

在 Java 9 中,JShell 提供了一个快速友好的环境,使我们能够快速探索、发现和试验 Java 语言功能和广泛的库。

在 JShell 中,不需要手动捕获异常。JShell自动捕获每个异常并显示有关它的信息,然后显示下一个 JShell 提示,以便我们可以继续会话。它也适用于未检查的异常。通过自动捕获已检查未检查异常,JShell 使我们更容易试验抛出已检查异常的方法。

在下面的示例中,由于未找到"values[4]"  的值,因此发生了ArrayIndexOutOfBoundsException 

示例 1

jshell> int[] values = {10, 20, 30}
values ==> int[3] { 10, 20, 30 }

jshell> values[4]
|   java.lang.ArrayIndexOutOfBoundsException thrown: 4
|        at (#7:1)

在下面的例子中,由于目录中未找到文件,因此发生了 FileNotFoundException 

示例 2

jshell> FileInputStream fis = new FileInputStream("data.txt")
| java.io.FileNotFoundException thrown: data.txt (The system cannot find the file specified)
|       at FileInputStream.open0 (Native Method)
|       at FileInputStream.open (FileInputStream.java:196)
|       at FileInputStream. (FileInputStream.java:139)
|       at FileInputStream. (FileInputStream.java:94)
|       at (#5:1)

在下面的例子中,由于"1/0"的值未定义,因此发生了ArithmeticException(未经检查的异常)。

示例 3

jshell> 1/0
|  java.lang.ArithmeticException thrown: / by zero
|        at (#4:1)

相关文章