يمكننا أيضًا استخدام عبارة محاولة...التقاط...أخيرًا للتعامل مع الاستثناءات. عندما ينفذ البرنامج رمز الخطأ، سيطرح النظام كائن استثناء، وسيدخل البرنامج إلى كتلة الالتقاط لمطابقتها واحدًا تلو الآخر. إذا نجحت المطابقة، فسيقوم البرنامج بتنفيذ رمز الالتقاط. إذا فشلت المطابقة، فسيتم إرجاع البرنامج إلى جهاز Java الظاهري للمعالجة.
تنسيق عبارة حاول...التقاط...أخيرًا هو كما يلي: حاول{// يحتوي على عبارات قد تسبب استثناءات}catch (كائن استثناء اسم فئة الاستثناء){//رمز معالجة الاستثناء}أخيرًا{//رمز ذلك يجب اعدامه }
أشياء يجب ملاحظتها:
1) حاول إبقاء رمز كتلة المحاولة صغيرًا قدر الإمكان.
2) بمجرد حدوث استثناء في كود كتلة المحاولة، بغض النظر عن عدد أسطر التعليمات البرمجية التي تتبع كتلة المحاولة، فلن يتم تنفيذه.
3) مطابقة معلمة الاستثناء في كتلة الالتقاط تلبي أيضًا الاستثناء متعدد الأشكال e = new ArithmeticException(/by Zero);
4) يمكن أن يكون هناك كتلة محاولة واحدة فقط، ويمكن أن يكون هناك العديد من كتل الالتقاط . يمكن دمج المحاولة مع الالتقاط، ويمكن دمج المحاولة مع النهاية، ويمكن دمج المحاولة مع الالتقاط والأخير.
5) بشكل عام، يتم استخدام الاستثناء كنوع معلمة الصيد في نهاية تنسيق معالجة الاستثناء.
6) يمكن أن يظهر الاستثناء كمعلمة استثناء للفئة الأصلية فقط في نهاية الاستثناء، أولاً الفئة الفرعية ثم الفئة الأصلية.
7) سيتم بالتأكيد تنفيذ كتلة التعليمات البرمجية المعدلة أخيرًا ما لم يخرج البرنامج بشكل غير طبيعي أو يتم استدعاء طريقة خروج النظام قبل وصول التنفيذ أخيرًا.
8) في عبارة المحاولة، عند تنفيذ عبارة الإرجاع، تكون النتيجة المراد إرجاعها جاهزة في هذا الوقت، يتحول البرنامج إلى التنفيذ النهائي. قبل النقل، حاول أولاً تخزين النتيجة المراد إرجاعها في متغير محلي مختلف عن x. بعد التنفيذ أخيرًا، يتم إخراج النتيجة التي تم إرجاعها، لذلك حتى إذا تم تغيير المتغير x أخيرًا، فلن يؤثر ذلك على الإرجاع نتيجة لذلك، يجب استخدام المكدس لحفظ القيمة المرجعة.