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