Avatar ·

الاستثناءات المحققة وغير المحققة في Java: ما الفرق وكيفية استخدامها؟

مرحباً بالجميع. بدأت تعلم Java ولا أستطيع فهم الفرق بين الاستثناءات checked (المحققة) و unchecked (غير المحققة). قرأت الوثائق، لكني ما زلت مرتبكاً عملياً.\n\nعلى سبيل المثال، أكتب طريقة بسيطة تقرأ ملفاً:\n\n```java\npublic void readFile(String path) {\n FileReader file = new FileReader(path);\n BufferedReader reader = new BufferedReader(file);\n String line = reader.readLine();\n System.out.println(line);\n}\n```\n\nالمترجم يشتكي من `FileReader` و `readLine()` - يقول إنه يجب معالجة `FileNotFoundException` و `IOException`. أقوم بتغليفها في `try-catch` ويعمل كل شيء. لكن بعد ذلك أكتب طريقة تقسم الأرقام:\n\n```java\npublic int divide(int a, int b) {\n return a / b;\n}\n```\n\nإذا مررت `b = 0`، يتعطل البرنامج