ตัวจัดการข้อยกเว้นใน Java คืออะไร

ใน Java ข้อยกเว้นเป็นหนึ่งในโครงสร้างจำนวนมากที่ควบคุมโฟลว์การควบคุมของโปรแกรม โดยเฉพาะพวกมันเป็นผลข้างเคียงที่ไม่ได้ตั้งใจของการทำงานปกติของโปรแกรม เมื่อเขียนโค้ดที่สามารถพบข้อยกเว้นโปรแกรมเมอร์ต้องกำหนดคำสั่งใหม่สำหรับโปรแกรมหากพบข้อยกเว้นกระบวนการที่เรียกว่า "การจัดการข้อยกเว้น" ตัวจัดการข้อยกเว้นทำจากบล็อกที่แตกต่างกันสามแบบคือลองจับและในที่สุด

ข้อยกเว้น Java

เมื่อโปรแกรมเรียกใช้เมธอดที่ทำงานอย่างไม่คาดคิดจะมีการกล่าวถึง "ข้อยกเว้น" ตัวอย่างเช่นหากโปรแกรมพยายามแบ่งตัวเลขเป็นศูนย์หรือโหลดไฟล์ที่ไม่มีอยู่โปรแกรมอาจไม่ทำงานตามที่คาดไว้และจะส่งข้อยกเว้นเพื่อส่งสัญญาณข้อผิดพลาดนี้ หากมีการกำหนดวิธีการให้ยกเว้นในร่างกายวิธีคุณสามารถเรียกมันได้เฉพาะในตัวจัดการข้อยกเว้น - หรือส่งข้อผิดพลาดขึ้นต้นไม้โดยการประกาศว่าวิธีการที่เรียกมันก็ยังโยนข้อยกเว้นเดียวกัน

ลองบล็อก

ในตัวจัดการข้อยกเว้นที่ประสบความสำเร็จวิธีการที่โยนข้อยกเว้นจะต้องมีอยู่ในบล็อก "ลอง" เช่นเดียวกับใน "ลอง {exceptionThrowingMethod ();}" หลังจากกำหนดบล็อกลองแล้วโปรแกรมเมอร์จะกำหนดบล็อกจับที่จับวิธีการยกเว้น ที่มีอยู่ในการลองบล็อกการโยน

จับบล็อก

บล็อก try เดียวสามารถมีบล็อก "catch" ได้หลายบล็อกเพื่อกำหนดลักษณะการทำงานที่แตกต่างกันเมื่อพบข้อยกเว้น หากโปรแกรมพบข้อยกเว้นที่กำหนดไว้ในบล็อก catch จำนวนมากบล็อกนั้นจะรันบล็อก catch-top ที่สุดก่อน เนื่องจากข้อยกเว้นทั้งหมดสืบทอดมาจากคลาสยกเว้นหมายความว่าหากบล็อก catch แรกของคุณอ่าน "catch (Exception e) {}" โปรแกรมจะรันบล็อกนั้นเสมอเมื่อพบข้อยกเว้นและไม่เคยมีข้อยกเว้นใด ๆ จัดเรียง catch catch ของคุณจากค่าที่เจาะจงที่สุดไปเป็นค่าที่น้อยที่สุดถ้าคุณต้องการควบคุมโปรแกรมของคุณอย่างละเอียด

ในที่สุดบล็อก

บล็อก "ที่สุด" เป็นองค์ประกอบเพิ่มเติมของตัวจัดการข้อยกเว้น ใช้เพื่อกำหนดพฤติกรรมที่ควรดำเนินการเสมอแม้ว่าจะพบข้อยกเว้น มีความจำเป็นในบางกรณีเพราะคุณไม่สามารถรับประกันได้ว่าส่วนสุดท้ายของการลองบล็อกจะดำเนินการ หากมีข้อผิดพลาดเกิดขึ้นและถูกจับบล็อกนั้นจะถูกขัดจังหวะ ณ จุดนั้น ตัวอย่างเช่นการวาง "InputStream.close ()" ในบล็อกสุดท้ายรับรองว่าไม่ว่าจะมีข้อยกเว้นเกิดขึ้นก่อนหน้านี้ในรหัสใดสตรีมของคุณจะถูกปิดอย่างปลอดภัย

โพสต์ยอดนิยม