Avatar ·

هل يتم تنفيذ كتلة finally دائمًا في Java؟ نستعرض التفاصيل الدقيقة

مرحبًا بالجميع! أنا مطور Java مبتدئ، وقد حدث لديّ ارتباك بخصوص كتلة finally. قرأت أن finally يتم تنفيذها دائمًا، بغض النظر عن إلقاء استثناء أم لا. لكن في الممارسة العملية، واجهت عدة حالات يبدو فيها أن الأمر ليس كذلك. إليك مثال على الكود الذي كتبته للاختبار: ```java public class FinallyTest { public static void main(String[] args) { System.out.println("النتيجة: " + testFinally()); } public static int testFinally() { try { System.out.println("في كتلة try"); return 1; } catch (Exception e) { System.out.println("في كتلة catch"); return 2; } finally { System.out.println("في كتلة finally"); return 3; // هذا ما يربكني } } } ``` كنت أتوقع أن تعيد الطريقة 1 (من try)، لكنها أعادت 3! إذًا، هل قامت finally بتجاوز return؟ أم أنني أفهم شيئًا خطأ؟ بالإضافة إلى ذلك، سمعت أنه إذا كان في