تعد الكتلة try-catch-finally طريقة تقليدية للتعامل مع الاستثناءات وإدارة الموارد مثل مقابض الملفات واتصالات قاعدة البيانات وما إلى ذلك.
تتكون كتلة محاولة الالتقاط أخيرًا من ثلاثة أجزاء:
FileReader reader = null; try { reader = new FileReader("example.txt"); // Perform file operations } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException ex) { ex.printStackTrace(); } }
تتطلب الكتلة التقليدية try-catch-finally معالجة يدوية لتنظيف الموارد، مما قد يؤدي إلى تعليمات برمجية مطولة وأخطاء محتملة، مثل نسيان إغلاق المورد.
استخدم try-catch-finally عندما تحتاج إلى إدارة الموارد غير القابلة للإغلاق التلقائي أو عندما يكون التوافق مع إصدارات Java الأقدم مطلوبًا.
تم تقديم بيان try-with-resource في Java 7، وهو يبسط إدارة الموارد عن طريق إغلاق الموارد التي تنفذ واجهة AutoCloseable تلقائيًا.
تضمن عبارة try-with-resource إغلاق كل مورد في نهاية العبارة، مما يقلل من التعليمات البرمجية المعيارية ومخاطر تسرب الموارد.
try (FileReader reader = new FileReader("example.txt")) { // Perform file operations } catch (IOException e) { e.printStackTrace(); }
دعونا نرى عرضًا توضيحيًا حيث نقارن try-catch-finally وtry-with-resource باستخدام عملية قراءة ملف بسيطة.
FileReader reader = null; try { reader = new FileReader("example.txt"); BufferedReader bufferedReader = new BufferedReader(reader); System.out.println(bufferedReader.readLine()); } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException ex) { ex.printStackTrace(); } }
try (FileReader reader = new FileReader("example.txt"); BufferedReader bufferedReader = new BufferedReader(reader)) { System.out.println(bufferedReader.readLine()); } catch (IOException e) { e.printStackTrace(); }
في الختام، في حين أن كلاً من try-catch-finally وtry-with-resource هما أدوات أساسية لمعالجة الاستثناءات وإدارة الموارد في Java، try-with- يقدم المورد طريقة أكثر بساطة ومقاومة للأخطاء. فهو يتعامل تلقائيًا مع إغلاق الموارد، مما ينتج عنه تعليمات برمجية أكثر وضوحًا وأكثر قابلية للصيانة. عند العمل مع الموارد التي تنفذ واجهة AutoCloseable، تفضل try-with-resource لبساطتها وموثوقيتها.
لا تتردد في التعليق أدناه إذا كان لديك أي أسئلة أو بحاجة إلى مزيد من التوضيح!
اقرأ المزيد من المشاركات على : ما هو Try-With-Resource في Java وكيف يختلف عن Try-Catch-Finally؟
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3