ข้อยกเว้น Java เป็นวัตถุที่อธิบายถึงข้อยกเว้น (นั่นคือสถานการณ์ข้อผิดพลาด) ที่เกิดขึ้นในเซ็กเมนต์รหัส เมื่อมีข้อยกเว้นเกิดขึ้นวัตถุที่แสดงถึงข้อยกเว้นจะถูกสร้างและโยนลงในวิธีที่ทำให้เกิดข้อผิดพลาด วิธีนี้สามารถเลือกที่จะจัดการกับข้อยกเว้นเองหรือผ่าน ในทั้งสองกรณีข้อยกเว้นจะถูกจับและประมวลผล ข้อยกเว้นอาจถูกสร้างขึ้นโดยระบบ Java Runtime หรือด้วยรหัสคู่มือของคุณ ข้อยกเว้นที่โยนโดย Java เกี่ยวข้องกับข้อผิดพลาดพื้นฐานที่ละเมิดข้อกำหนดภาษาหรือเกินกว่าข้อ จำกัด ของสภาพแวดล้อมการดำเนินการ Java ข้อยกเว้นที่สร้างขึ้นโดยการเข้ารหัสด้วยตนเองนั้นใช้โดยทั่วไปเพื่อรายงานเงื่อนไขข้อผิดพลาดในวิธีการโทร
การจัดการข้อยกเว้น Java ถูกควบคุมโดย 5 คำหลัก: ลองจับโยนโยนและในที่สุด นี่คือวิธีการทำงาน โปรแกรมประกาศว่าการตรวจสอบข้อยกเว้นที่คุณต้องการนั้นรวมอยู่ในบล็อกลอง หากมีข้อยกเว้นเกิดขึ้นในบล็อกลองมันจะถูกโยนลงไป รหัสของคุณสามารถตรวจจับข้อยกเว้นนี้ (พร้อมจับ) และจัดการกับมันในบางวิธีที่สมเหตุสมผล ข้อยกเว้นที่สร้างโดยระบบจะถูกโยนโดยระบบรันไทม์ Java โดยอัตโนมัติ โยนข้อยกเว้นด้วยตนเองโดยใช้การโยนคำหลัก ข้อยกเว้นใด ๆ สำหรับวิธีการโยนจะต้องกำหนดโดยประโยคการโยน รหัสใด ๆ ที่ดำเนินการอย่างแน่นอนก่อนที่วิธีการส่งคืนจะถูกวางไว้ในบล็อกในที่สุด
นี่คือรูปแบบปกติของบล็อกการจัดการข้อยกเว้น:
ลอง {// block of code เพื่อตรวจสอบข้อผิดพลาด} catch (spectionype1 exob) {// handler ข้อยกเว้นสำหรับ spectionype1} catch (spectionype2 exob) {// ยกเว้นตัวจัดการไอออนสำหรับ ficeSpeType2} // ... ในที่สุด {// บล็อกของบล็อกของ รหัสที่จะดำเนินการก่อนลองบล็อกสิ้นสุด}
ที่นี่ประเภทพิเศษคือประเภทที่เกิดข้อยกเว้น
ทุกประเภทข้อยกเว้นเป็นคลาสย่อยของคลาสที่โยนได้ในตัว ดังนั้นการโยนได้อยู่ที่ระดับสูงสุดของลำดับชั้นของคลาสข้อยกเว้น ทันทีหลังจากที่สามารถโยนได้เป็นสองคลาสย่อยที่แบ่งข้อยกเว้นออกเป็นสองสาขาที่แตกต่างกัน สาขาเป็นข้อยกเว้น
คลาสนี้ใช้สำหรับข้อยกเว้นที่อาจถูกจับโดยโปรแกรมผู้ใช้ นอกจากนี้ยังเป็นคลาสที่คุณสามารถใช้เพื่อสร้างคลาสย่อยประเภทข้อยกเว้นผู้ใช้ของคุณเอง มี subclass runtimeException ที่สำคัญในสาขาข้อยกเว้น ข้อยกเว้นประเภทนี้ถูกกำหนดโดยอัตโนมัติสำหรับโปรแกรมที่คุณเขียนและรวมถึงข้อผิดพลาดเช่นการหารด้วยการจัดทำดัชนีอาร์เรย์ที่ผิดกฎหมายและการจัดทำดัชนีอาร์เรย์ที่ผิดกฎหมาย
สาขาประเภทอื่นคือระดับสูงสุดที่มีข้อผิดพลาดซึ่งกำหนดข้อยกเว้นที่ไม่ได้ตั้งใจจะถูกจับโดยโปรแกรมในสภาพแวดล้อมปกติ ข้อยกเว้นของข้อผิดพลาดประเภทถูกใช้ในระบบ Java Runtime เพื่อแสดงข้อผิดพลาดที่เกี่ยวข้องกับระบบรันไทม์เอง สแต็คล้นเป็นตัวอย่างของข้อผิดพลาดนี้ บทนี้จะไม่หารือเกี่ยวกับการจัดการข้อผิดพลาดสำหรับประเภทข้อผิดพลาดเพราะพวกเขามักจะเป็นข้อผิดพลาดที่หายนะและร้ายแรงซึ่งไม่ใช่สิ่งที่โปรแกรมของคุณสามารถควบคุมได้