عندما يتم طرح الاستثناء ، فإن تنفيذ الطريقة المعتادة سيؤدي إلى منعطف غير خطير. تعتمد على كيفية ترميز الطريقة ، يمكن أن تتسبب الاستثناءات في إرجاع الطريقة قبل الأوان. هذه مشكلة في بعض الطرق. على سبيل المثال ، إذا فتحت الطريقة عنصر ملف وإغلاقه ثم يخرج ، فأنت لا تريد أن يتم تجاوز الكود الذي يغلق الملف من خلال آلية معالجة الاستثناءات. أخيرًا تم تصميم الكلمات الرئيسية للتعامل مع مثل هذه الحوادث.
أخيرًا إنشاء كتلة رمز. يتم تنفيذ كتلة الرمز هذه قبل ظهور محاولة أخرى للمحاولة بعد اكتمال كتلة المحاولة/الصيد. أخيرًا ، سيتم تنفيذ Block بغض النظر عما إذا كان هناك استثناء تم إلقاؤه أم لا. إذا تم طرح الاستثناء ، فسيتم تنفيذها أخيرًا حتى بدون شرط الصيد الذي يتطابق مع الاستثناء. سيتم إرجاع طريقة من مجموعة Try/Catch إلى برنامج الاتصال في أي وقت يتم استدعاؤه ، بعد استثناء غير معطل أو بيان إرجاع صريح ، سيظل يتم تنفيذ الشرط الأخير قبل عودة الطريقة. يكون هذا مفيدًا عند إغلاق مقبض الملف وتحرير أي موارد أخرى يتم تخصيصها في بداية الطريقة. البند الأخير اختياري ، إما مع أو بدون. ومع ذلك ، يتطلب كل عبارة TRY جملة واحدة على الأقل أو في النهاية.
يوضح المثال التالي 3 طرق خروج مختلفة. ينفذ كل شرط أخيرًا:
// أظهرت أخيرًا. System.out.println ("Proca's أخيرًا") Out.println ("Procb's أخيرًا") "Procc's أخيرًا") ؛ () ؛
في هذا المثال ، يقاطع Proca () المحاولة قبل الأوان من خلال إلقاء استثناء. يتم تنفيذ البند النهائي على الخروج. يخرج بيان Try Procb () من خلال بيان العودة. يتم تنفيذ البند الأخير قبل عودة PROCB (). في PROCC () ، يتم تنفيذ بيان المحاولة بشكل طبيعي دون أخطاء. ومع ذلك ، سيتم تنفيذ Block أخيرًا.
ملاحظة: إذا تم استخدام الكتلة أخيرًا بالاقتران مع المحاولة ، فسيتم تنفيذ الكتلة أخيرًا قبل نهاية المحاولة.
فيما يلي الإخراج الذي تم إنشاؤه بواسطة البرنامج أعلاه:
داخل Procaproca من Procaproca Farnexception من Procbprocb من Proccprocc أخيرًا