"வணக்கம், அமிகோ!

"சிறிய, ஆனால் சுவாரஸ்யமான ஒன்றைப் பற்றி நான் உங்களுக்குச் சொல்ல விரும்புகிறேன்."

"நான் கேட்கிறேன், சிறிய மற்றும் சுவாரஸ்யமான விஷயங்களை நான் விரும்புகிறேன்."

"சரி, ஒவ்வொரு த்ரெட் பொருளுக்கும் ஒரு ரன்() முறை உள்ளது என்பது உங்களுக்குத் தெரியும். மேலும் தொடக்க() முறையைப் பயன்படுத்தி தனி நூலில் அதை இயக்கலாம்."

"ஆமாம் கண்டிப்பாக."

"ஆனால் இப்போது இந்த சூழ்நிலையை கற்பனை செய்து பாருங்கள்: நீங்கள் சில வேலைகளைச் செய்ய ஒரு நூலைத் தொடங்குகிறீர்கள், ஆனால் ஒரு விதிவிலக்கு போடப்பட்டு, என்ன செய்வது என்று தெரியாததால் நூல் இயங்குவதை நிறுத்துகிறது. எப்படியாவது இந்த பிழையைப் பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டாமா?"

"நான் ஒப்புக்கொள்கிறேன். மற்ற இயங்கும் நூலில் ஏற்பட்ட விதிவிலக்கை நான் எப்படியாவது பிடிக்க வேண்டும். ஜாவா கூட அதை ஆதரிக்கிறதா?"

"நீங்கள் என்னை அவமதிக்கிறீர்கள். நிச்சயமாக அது செய்கிறது."

"ஜாவாவின் படைப்பாளிகள் UncaughtExceptionHandler எனப்படும் ஒரு சிறப்பு இடைமுகத்தைக் கண்டுபிடித்துள்ளனர். மற்றொரு நூலில் ஏற்படும் விதிவிலக்கை, அந்த நூல் பிடிக்கவில்லை என்றால், அதை எப்படிப் பிடித்துக் கையாள்வது என்பது இங்கே:"

உதாரணமாக
public class DownloadManager
{
 public static void main(String[] args)
 {
   Thread thread = new DownloadThread();
   thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
   {
    @Override
    public void uncaughtException(Thread t, Throwable e)
    {

    }
 });

 thread.start();
}

"த்ரெட் ஆப்ஜெக்ட்டில் ஒரு சிறப்பு setUncaughtExceptionHandler முறை உள்ளது. நீங்கள் அதை Thread.UncaughtExceptionHandler இடைமுகத்தை செயல்படுத்தும் ஒரு பொருளை அனுப்ப வேண்டும் . இந்த இடைமுகத்தில் ஒரே ஒரு முறை மட்டுமே உள்ளது: uncaughtException(Thread t, Throwable e) . இந்த முறைதான் அழைக்கப்படும். ரன் முறையில் பிடிபடாத விதிவிலக்கு ஏற்பட்டால் அனுப்பப்பட்ட பொருள்."

"மேலே உள்ள எனது எடுத்துக்காட்டில், திரியை செயல்படுத்தும் ஒரு அநாமதேய உள் வகுப்பை (சிவப்பு நிறத்தில் உயர்த்தி) நான் அறிவிக்கிறேன். Thread.UncaughtExceptionHandler இடைமுகம். அதன் uncaughtException(Thread t, Throwable e) முறையை நான் மேலெழுதுகிறேன் ."

"முறையின் அளவுரு பட்டியலிலிருந்து நீங்கள் பார்ப்பது போல், இரண்டு வாதங்கள் அனுப்பப்படும்: விதிவிலக்கு ஏற்பட்ட நூல் பொருளின் குறிப்பு மற்றும் விதிவிலக்கு, வீசக்கூடிய e ஆக அனுப்பப்பட்டது."

"சரி, எனக்கு ஏன் த்ரெட் மாறி t தேவை? எந்த த்ரெட்டில் ஒரு த்ரெட் போடுகிறோம் என்பது எங்களுக்கு முன்பே தெரியாதா. UncaughtExceptionHandler object?"

"அவர்கள் இதைச் செய்தார்கள், இதன் மூலம் நீங்கள் இந்த சூழ்நிலைகளுக்கு ஒரு உலகளாவிய கையாளுதலை எழுதலாம். அதாவது நீங்கள் ஒரு பொருளை உருவாக்கி அதை டஜன் கணக்கான வெவ்வேறு நூல்களுக்கு அனுப்பலாம். பின்னர் uncaughtException( Thread t, Throwable e) முறை உங்களுக்கு எப்போதும் ஒரு குறிப்பைக் கொடுக்கிறது. விதிவிலக்கு ஏற்பட்ட இடத்தில் நூல் பொருள்."

"மேலும், நீங்கள் டஜன் கணக்கான நூல்களை உருவாக்கலாம், எடுத்துக்காட்டாக, குறிப்பிட்ட பணிகளைச் செய்ய ஒரு சுழற்சியில். பொதுவாக, த்ரெட் பொருளின் இந்த குறிப்பு மிதமிஞ்சியதாக இருக்காது. நான் உங்களுக்கு உறுதியளிக்கிறேன்."

"உன்னை நான் நம்புகிறேன். நீ ஒருபோதும் தவறாகப் பேசியதில்லை."