Chapter 10 Exception Handling
Exception Handling Exception หมายถึงข้อผิดพลาดที่เกิดขึ้น ณ. โปรแกรมกำลังทำงาน Exception Handling เป็นกลไกการจัดการข้อผิดพลาดที่เกิดขึ้น โดยระบบโปรแกรมสามารถตอบสนองข้อผิดพลาดที่เกิดขึ้นตามที่ต้องการ เช่นข้อผิดพลาดที่เกิดจากการหารด้วยศูนย์ การหาไฟล์ไม่พบ Exception Handling สามารถตรวจสอบข้อผิดพลาดที่เกิดขึ้นแล้วโยนข้อผิดพลาดไปยังการจัดการที่คอยดักจับที่กลั่นกรองแบบลดหลั่น
การเกิด Exception Exception ทุกอย่างจะแทนด้วยคลาสซึ่งรับทอดมาจากคลาส Throwable เมื่อเกิดข้อผิดพลาดจะมีการสร้างออบเจ็กต์ของความผิดพลาดชนิดนั้นเกิดขึ้น จาวาจะแยก exceptionออกเป็น 2 ประเภทคือ error และ exception error เป็นข้อผิดพลาดที่เกิดภายใน jvm และอยู่ในการควบคุมของ jvm exception เป็นข้อผิดพลาดจากคำสั่งของโปรแกรมสามารถควบคุมได้
การจัดการ exception ด้วย try…catch… block try block เป็นส่วนที่เราบรรจุคำสั่งที่คาดว่าจะเกิดข้อผิดพลาด catch block จะบรรจุคำสั่งที่จัดการข้อผิดพลาดที่ตรงกับชนิดข้อผิดพลาดที่เกิดขึ้นใน try…block
Jvm จะคอยตรวจสอบข้อผิดพลาดtry block เมื่อเกิดข้อผิดพลาดขึ้น ข้อผิดพลาดนั้นจะถูกโยนออกจาก try block ไปจัดการที่ catch block ทันที ถ้าไม่มีข้อผิดพลาดการทำงานเกิดขึ้น try block ก็จะจบการทำงานแบบปกติ
ArrayIndexOutOfBoundsException.
การสร้าง exception ใน try…block
เราสามารถให้ jvm จัดการข้อผิดพลาดมาตรฐานได้ ถึงจะได้ข้อมูลเกี่ยวกับข้อผิดพลาดช่วยแก้ไขโปรแกรม แต่ไม่เป็นประโยชน์ต่อคนอื่น จึงควรจัดการเองแบบที่ผ่านมา
ArithmeticException
Multiple catch Statements
output
การใช้ Throwable ทำงานแทนคลาส exception ย่อย โดยต้องเขียน sub class ไว้หน้า Throwable
output
การเขียน try…blockซ้อนกัน
output
การเขียน throw ด้วยตัวเอง เราสามารถส่งข้อผิดพลาดไป catch block แทน jvm ด้วย
การ rethrow
การใช้ Throwable
การใช้ finally ใช้สำหรับบรรจุคำสั่งหลังจากทำ try…catch เสร็จแล้ว
การใช้ throws บางครั้งต้องการจัดการข้อผิดพลาดบางอย่างภายในเมธอด เราสามารถใช้ throws โดยใช้คำสั่ง
Java’s Built-in Exceptions
การสร้าง exception ขึ้นเอง