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

วิธีจัดการกับข้อยกเว้นโดยใช้ UncaughtExceptionHandler ใน Java?


UncaughtExceptionHandler เป็นอินเทอร์เฟซภายใน เธรด ระดับ. เมื่อ กระทู้หลัก กำลังจะสิ้นสุดลงเนื่องจากข้อยกเว้นที่ตรวจไม่พบ เครื่องเสมือน Java จะเรียกใช้ UncaughtExceptionHandler . ของเธรด สำหรับโอกาสที่จะดำเนินการจัดการข้อผิดพลาดเช่นการบันทึก ข้อยกเว้นไปยังไฟล์ หรือ อัปโหลดบันทึกไปยังเซิร์ฟเวอร์ ก่อนที่มันจะถูกฆ่า เราสามารถตั้งค่าตัวจัดการข้อยกเว้นเริ่มต้นซึ่งจะถูกเรียกสำหรับข้อยกเว้นที่ไม่สามารถจัดการได้ทั้งหมด เปิดตัวใน Java 5 Version .

ตัวจัดการนี้สามารถตั้งค่าได้โดยใช้วิธีการคงที่ด้านล่างของ java.lang.Thread ชั้นเรียน

public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh)

เราต้องจัดเตรียมการใช้งานอินเทอร์เฟซ Thread.UncaughtExceptionHandler ซึ่งมีวิธีการเดียวเท่านั้น

ไวยากรณ์

@FunctionalInterface
public interface UncaughtExceptionHandler {
   void uncaughtException(Thread t, Throwable e);
}

ตัวอย่าง

public class UncaughtExceptionHandlerTest {
   public static void main(String[] args) throws Exception {
      Thread.setDefaultUncaughtExceptionHandler(new MyHandler());
      throw new Exception("Test Exception");
   }
   private static final class MyHandler implements Thread.UncaughtExceptionHandler {
      @Override
      public void uncaughtException(Thread t, Throwable e) {
         System.out.println("The Exception Caught: " + e);
      }
   }
}

ผลลัพธ์

The Exception Caught: java.lang.Exception: Test Exception