สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 7, เวอร์ชัน Java 10, คอมพิวเตอร์ DELL G3
1. คำอธิบาย
(1) สำหรับข้อยกเว้นรันไทม์ สามารถจัดการได้โดยไม่ต้องชัดเจน
(2) สำหรับข้อยกเว้นเวลาคอมไพล์ จะต้องได้รับการจัดการอย่างชัดเจน
2. วิธีที่ 1:
พยายาม{ //โค้ดที่อาจทำให้เกิดข้อยกเว้น}catch(Exption1 e1){ // วิธีการประมวลผลหนึ่ง}จับ (Exption2 e2){ // วิธีการประมวลผลสอง}ในที่สุด{ // รหัสที่ต้องดำเนินการ}
บันทึก:
(1) ตัวแปรที่ประกาศใน try นั้นคล้ายคลึงกับตัวแปรในเครื่อง ยกเว้นคำสั่ง try{} ซึ่งไม่สามารถเรียกได้
(2) ภายในคำสั่ง catch คือการประมวลผลของวัตถุข้อยกเว้น: e.getMessage(); e.printStackTrace()
(3) สามารถใช้คำสั่ง catch ได้หลายรายการ วัตถุคลาสข้อยกเว้นที่ถูกโยนเข้ามาจะตรงกับประเภทของคลาสข้อยกเว้นใน catch จากบนลงล่าง เมื่อพอใจแล้ว โค้ดใน catch จะถูกดำเนินการ หลังจากดำเนินการแล้ว คำสั่งต่างๆ ต่อไปนี้จะเป็น กระโดดออกมา
(4) หากมีการจัดการข้อยกเว้น โค้ดถัดไปจะยังคงดำเนินการต่อไป
(5) หากประเภทข้อยกเว้นหลายประเภทใน catch อยู่ในความสัมพันธ์ "แบบขนาน" ลำดับอาจเป็นได้ทั้งก่อนหรือหลัง ถ้าประเภทข้อยกเว้นหลายประเภทใน catch อยู่ในความสัมพันธ์ "รวม" คลาสย่อยจะต้องถูกวาง ก่อนคลาสหลักสำหรับการประมวลผล มิฉะนั้น รายงานข้อผิดพลาด
(6) ในที่สุดก็เป็นทางเลือก
(7) สุดท้ายจะเก็บโค้ดที่จะถูกดำเนินการอย่างแน่นอน โดยไม่คำนึงว่ายังมีข้อยกเว้นที่ไม่สามารถจัดการได้ใน try หรือ catch หรือไม่ และจะมีคำสั่ง return หรือไม่
(8) try-catch สามารถซ้อนกันได้
3. วิธีที่ 2:
(1) ในการประกาศเมธอด ให้ระบุประเภทของออบเจ็กต์ข้อยกเว้นอย่างชัดเจน
(2) รูปแบบ เช่น:
วิธีการเป็นโมฆะคงสาธารณะ () พ่นข้อยกเว้น {}
(3) เมื่อมีข้อยกเว้นเกิดขึ้นภายในเมธอดนี้ อ็อบเจ็กต์ของคลาสข้อยกเว้นจะถูกส่งไปยังผู้เรียกเมธอด
(4) วัตถุยกเว้นสามารถถูกโยนขึ้นไปทีละชั้นจนกระทั่งเป็นวัตถุหลัก แน่นอนว่าในระหว่างกระบวนการโยนขึ้นไปนั้นสามารถประมวลผลได้ด้วยการลองจับในที่สุด
ข้างต้นเป็น โซลูชันการจัดหมวดหมู่ของการจัดการข้อยกเว้นของ Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน คู่มือการเรียนรู้ Java เพิ่มเติม: กวดวิชาจาวา