UncaughtExceptionHandler একটি থ্রেডের ভিতরে একটি ইন্টারফেস ক্লাস যখন প্রধান থ্রেড java ভার্চুয়াল মেশিন একটি অচেনা ব্যতিক্রমের কারণে বন্ধ হতে চলেছে থ্রেডের UncaughtExceptionHandler কে আহ্বান করবে একটি ফাইলের ব্যতিক্রম লগ করার মতো কিছু ত্রুটি পরিচালনা করার সুযোগের জন্য অথবা সার্ভারে লগ আপলোড করা হচ্ছে মারা যাওয়ার আগে। আমরা একটি ডিফল্ট ব্যতিক্রম হ্যান্ডলার সেট করতে পারি যা সমস্ত আন-হ্যান্ডেল করা ব্যতিক্রমগুলির জন্য বলা হবে। এটি জাভা 5 সংস্করণে চালু করা হয়েছে .
এই হ্যান্ডলারটি 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