ใน 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)