ثلاثة أنواع من الاستثناءات في جافا

click fraud protection

الأخطاء هي لعنة المستخدمين والمبرمجين على حد سواء. من الواضح أن المطورين لا يريدون أن تتوقف برامجهم عند كل منعطف ، ويعتاد المستخدمون الآن على وجود أخطاء فيها البرامج التي يقبلونها على مضض لدفع ثمن البرنامج الذي سيكون له بالتأكيد خطأ واحد على الأقل ذلك. جافا تم تصميمه لمنح المبرمج فرصة رياضية في تصميم تطبيق خالي من الأخطاء. هناك استثناءات يعرفها المبرمج وهي احتمال عندما يتفاعل تطبيق ما مع مورد أو مستخدم ويمكن معالجة هذه الاستثناءات. لسوء الحظ ، هناك استثناءات لا يمكن للمبرمج التحكم فيها أو يطل عليها ببساطة. باختصار ، لا يتم إنشاء جميع الاستثناءات على قدم المساواة ، وبالتالي هناك عدة أنواع للمبرمج للتفكير فيها.

الاستثناء هو حدث يتسبب في عدم قدرة البرنامج على التدفق في التنفيذ المقصود. هناك ثلاثة أنواع من الاستثناء - الاستثناء المحدد والخطأ واستثناء وقت التشغيل.

الاستثناء المحدد

الاستثناءات التي تم فحصها هي استثناءات يجب أن يتمكن تطبيق Java من التعامل معها. على سبيل المثال ، إذا قام أحد التطبيقات بقراءة البيانات من ملف ، فيجب أن يكون قادرًا على التعامل مع FileNotFoundException. بعد كل شيء ، ليس هناك ما يضمن أن الملف المتوقع سيكون حيث من المفترض أن يكون. يمكن أن يحدث أي شيء على نظام الملفات ، والذي لن يكون لأي تطبيق أي فكرة عنه.

instagram viewer

لنأخذ هذا المثال خطوة أخرى إلى الأمام. دعنا نقول أننا نستخدم FileReader فئة لقراءة ملف شخصية. إذا كان لديك نظرة على تعريف مُنشئ FileReader في Java api سترى انها توقيع الطريقة:

FileReader العامة (سلسلة اسم الملف) يلقي FileNotFoundException.

كما ترون المنشئ ينص تحديدا على أن FileReader منشئ يمكن أن يلقي FileNotFoundException. هذا منطقي لأنه من المرجح للغاية أن اسم الملف ستكون السلسلة خاطئة من وقت لآخر. انظر الكود التالي:

ثابت الفراغ الثابت الرئيسي (سلسلة [] الحجج) { FileReader fileInput = فارغة. // افتح ملف الإدخال. fileInput = new FileReader ("Untitled.txt") ؛ }

جملة الجمل صحيحة ولكن هذا الرمز لن يتم تجميعه. المترجم يعرف FileReader منشئ يمكن أن يلقي FileNotFoundException ويعود الأمر إلى رمز الاتصال للتعامل مع هذا الاستثناء. هناك خياران - أولاً يمكننا تمرير الاستثناء من طريقتنا عن طريق تحديد a يلقي بند أيضا:

ثابت الفراغ الثابت الرئيسي (سلسلة [] الحجج) يلقي FileNotFoundException { FileReader fileInput = فارغة. // افتح ملف الإدخال. fileInput = new FileReader ("Untitled.txt") ؛ }

أو يمكننا في الواقع التعامل مع الاستثناء:

ثابت الفراغ الثابت الرئيسي (سلسلة [] الحجج) { FileReader fileInput = فارغة. محاولة. { // افتح ملف الإدخال. fileInput = new FileReader ("Untitled.txt") ؛ } catch (FileNotFoundException ex) { / أخبر المستخدم بالذهاب والعثور على الملف. } }

يجب أن تكون تطبيقات Java المكتوبة جيدًا قادرة على التعامل مع الاستثناءات المحددة.

أخطاء

يُعرف النوع الثاني من الاستثناء بالخطأ. عندما يحدث استثناء JVM سيخلق كائن استثناء. كل هذه الأشياء مستمدة من رمية صف دراسي. ال رمية يحتوي الفصل على فئتين فرعيتين- خطأ و استثناء. ال خطأ تشير الفئة إلى استثناء من عدم قدرة التطبيق على التعامل معه.

هذه الاستثناءات تعتبر نادرة. على سبيل المثال ، قد تنفد موارد JVM بسبب عدم قدرة الأجهزة على التعامل مع جميع العمليات التي يتعين عليها التعامل معها. من الممكن أن يلاحظ التطبيق الخطأ لإخطار المستخدم ولكن عادةً ما يجب إغلاق التطبيق حتى يتم التعامل مع المشكلة الأساسية.

استثناءات وقت التشغيل

أ استثناء وقت التشغيل يحدث ببساطة لأن المبرمج ارتكب خطأ. لقد قمت بكتابة الكود ، كل هذا يبدو جيدًا للمترجم وعندما تذهب لتشغيل الكود ، فإنه ينهار لأنه حاول الوصول إلى عنصر من صفيف غير موجود أو تسبب خطأ منطقي في أن يتم استدعاء طريقة خالية القيمة. أو أي عدد من الأخطاء التي يمكن للمبرمج ارتكابها. لكن هذا جيد ، نحن نكتشف هذه الاستثناءات عن طريق اختبار شامل ، أليس كذلك؟

تقع أخطاء استثناءات وقت التشغيل في فئة الاستثناءات غير المحددة.

instagram story viewer