Trong Java 9, JShell cung cấp môi trường nhanh chóng và thân thiện cho phép khám phá, phát hiện và thử nghiệm các tính năng ngôn ngữ Java và thư viện mở rộng.
Trong JShell, không cần bắt ngoại lệ thủ công. JShell tự động bắt từng ngoại lệ và hiển thị thông tin về nó, sau đó hiển thị dấu nhắc JShell tiếp theo để tiếp tục phiên làm việc. Điều này hoạt động cho cả unchecked exceptions (ngoại lệ không kiểm tra). Bằng cách tự động bắt cả checked và unchecked exceptions, JShell giúp dễ dàng thử nghiệm các phương thức ném checked exceptions.
Ví dụ 1: ArrayIndexOutOfBoundsException
jshell> int[] values = {10, 20, 30}
values ==> int[3] { 10, 20, 30 }
jshell> values[4]
| java.lang.ArrayIndexOutOfBoundsException thrown: 4
| at (#7:1)
Ngoại lệ xảy ra vì values[4] không tồn tại.
Ví dụ 2: FileNotFoundException (checked exception)
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)
Ngoại lệ xảy ra vì file không tìm thấy trong thư mục.
Ví dụ 3: ArithmeticException (unchecked exception)
jshell> 1/0 | java.lang.ArithmeticException thrown: / by zero | at (#4:1)
Ngoại lệ xảy ra vì 1/0 là giá trị không xác định.