在Java 9中,JShell 提供了一种快速友好的环境,使我们能够快速探索,发现和试验Java语言功能和广泛的库。
在JShell中,不需要手动捕获异常。JShell 自动捕获每个异常并显示有关该异常的信息,然后显示下一个JShell提示,以便我们继续我们的会话。它也适用于未经检查的 异常 。通过自动捕获已检查 和未检查的 异常,JShell使我们可以更轻松地尝试引发已检查的异常的方法。
在下面的示例中,由于 找不到“ values [4]”的值,因此发生了ArrayIndexOutOfBoundsException 。
jshell> int[] values = {10, 20, 30} values ==> int[3] { 10, 20, 30 } jshell> values[4] | java.lang.ArrayIndexOutOfBoundsException thrown: 4 | at (#7:1)
在下面的示例中,由于在目录中找不到文件,因此发生FileNotFoundException 。
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 (未经检查的异常)。
jshell> 1/0 | java.lang.ArithmeticException thrown: / by zero | at (#4:1)