Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะโยนข้อยกเว้นใน Java ใหม่ได้อย่างไร


บางครั้งเราอาจต้องส่งข้อยกเว้นใน Java ใหม่ หากบล็อก catch ไม่สามารถจัดการกับข้อยกเว้นที่ตรวจพบได้ เราสามารถเรียกใช้ข้อยกเว้นใหม่ได้ นิพจน์ rethrow ทำให้ อ็อบเจกต์ที่โยนแต่เดิมถูกโยนใหม่

เนื่องจากข้อยกเว้นได้รับการตรวจพบในขอบเขตที่เกิดนิพจน์ rethrow แล้ว จึงมีการส่งกลับไปยังบล็อก try ที่ล้อมรอบถัดไป ดังนั้นจึงไม่สามารถจัดการได้โดย catch block ที่ขอบเขตที่เกิดนิพจน์ rethrow บล็อก catch ใดๆ สำหรับบล็อก try ที่ปิดล้อมมีโอกาสที่จะตรวจจับข้อยกเว้น

ไวยากรณ์

catch(ข้อยกเว้น e) { System.out.println ("มีข้อยกเว้นเกิดขึ้น"); โยน e;}

ตัวอย่าง

<ก่อน> RethrowException คลาสสาธารณะ { โมฆะคงที่สาธารณะ test1 () พ่นข้อยกเว้น { System.out.println ("ข้อยกเว้นในวิธี test1 ()"); โยนข้อยกเว้นใหม่ ("โยนจากวิธี test1 ()"); } โมฆะคงที่สาธารณะ test2 () โยน Throwable { ลอง { test1 (); } catch (ข้อยกเว้น e) { System.out.println ("Inside test2 () วิธี"); โยน e; } } โมฆะคงที่สาธารณะ main (สตริง [] args) โยน Throwable { ลอง { test2 (); } catch (ข้อยกเว้น e) { System.out.println ("ติดอยู่ในหลัก"); } }}

ผลลัพธ์

ข้อยกเว้นใน test1() methodInside test2() methodCaught in main