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


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

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

在下面的示例中,ArrayIndexOutOfBoundsException 已发生,因为未找到"values[4]"的值。

示例-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)


在下面的示例中,ArithmeticException (未经检查的异常)已发生,因为"1/0" 的值是未定义的。

示例-3

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

更新于: 2020 年 2 月 25 日

310 次浏览

启动您的 职业

完成课程以获得认证

开始
广告