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

จะจัดการกับ Runtime Exception ใน Java ได้อย่างไร?


Runtime Exception เป็นคลาสพาเรนต์ในข้อยกเว้นทั้งหมดของภาษาการเขียนโปรแกรม Java ที่คาดว่าจะหยุดทำงานหรือทำให้โปรแกรมหรือแอปพลิเคชันเสียหายเมื่อเกิดขึ้น ไม่เหมือนกับข้อยกเว้นที่ไม่ถือว่าเป็น Runtime Exceptions แต่ Runtime Exceptions จะไม่ถูกตรวจสอบ

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

ข้อยกเว้นรันไทม์ที่พบบ่อยที่สุดคือ NullPointerException , ArrayIndexOutOfBoundsException และ InvalidArgumentException . Java Virtual Machine แสดงข้อยกเว้นรันไทม์สองรายการแรก

  • The NullPointerException เป็นข้อยกเว้นที่เกิดจาก Java Virtual Machine เมื่อผู้ใช้ดำเนินการบางอย่างกับวัตถุบางอย่างที่ถือว่าเป็นโมฆะหรือกำลังเรียกวิธีการบางอย่างบนวัตถุ null ผู้ใช้ไม่ควรพยายามจัดการกับข้อยกเว้นประเภทนี้ เนื่องจากจะแก้ไขปัญหาเท่านั้นและไม่สามารถแก้ไขได้ทั้งหมด
  • The ArrayIndexOutOfBoundsException เป็นข้อยกเว้นที่เกิดขึ้นโดยอัตโนมัติโดย Java Runtime Environment เมื่อโปรแกรม Java บางโปรแกรมพยายามเข้าถึงตำแหน่งที่แน่นอนในชุดที่ไม่มีอยู่จริงอย่างไม่ถูกต้อง สิ่งนี้มักเกิดขึ้นเมื่อดัชนีอาร์เรย์ที่ร้องขอเป็นค่าลบ หรือมากกว่าหรือเท่ากับขนาดของอาร์เรย์ อาร์เรย์ของ Java ใช้การจัดทำดัชนีแบบศูนย์ ดังนั้นองค์ประกอบแรกของอาร์เรย์นั้นมีดัชนีศูนย์ องค์ประกอบสุดท้ายมาพร้อมกับดัชนีขนาด 1 และองค์ประกอบที่ n มาพร้อมกับดัชนี n-1
  • The InvalidArgumentException เป็นข้อยกเว้นที่เกิดขึ้นเมื่อมีการส่งพารามิเตอร์ที่ไม่ถูกต้องไปยังวิธีการบางอย่างในการเชื่อมต่อที่อ้างอิงของเซิร์ฟเวอร์

ตัวอย่าง

<ก่อน> MyExceptionTest คลาสสาธารณะ { โมฆะสาธารณะ testRuntimeException () { โยน MyException ใหม่ (); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) { ลอง { ใหม่ MyExceptionTest ().testRuntimeException (); } catch (ข้อยกเว้น e) { System.out.println (e.getClass ().getName ()); } }} class MyException ขยาย RuntimeException { myException สาธารณะ () { super (); }}

ผลลัพธ์

MyException