الاستثناءات المُتحقق منها وغير المُتحقق منها في 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المترجم (compiler) يشتكي من `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`، يتعطل البرنامج