الفرق الرئيسي - تم التحقق منه مقابل استثناء لم يتم التحقق منه في Java
الاستثناء هو خطأ وقت التشغيل. هناك نوعان من الاستثناءات يعرفان بالاستثناءات المحددة وغير المحددة. عند حدوث استثناء محدد ، يتم توصيل تطبيق Java بمورد خارجي مثل ملف أو جهاز أو قاعدة بيانات. يتم فحص هذه الاستثناءات من قبل المترجم. بعض الأمثلة على الاستثناءات المحددة هي استثناء IO واستثناء FileNotFound. عند حدوث استثناء غير محدد ، لا يكون التطبيق متصلاً بأي مورد خارجي. لم يتم فحص هذه الاستثناءات من قبل المترجم. بعض الأمثلة على الاستثناءات التي لم يتم تحديدها هي استثناء حسابي واستثناء ArrayOutOfBound.تتناول هذه المقالة الفرق بين الاستثناء المحدد وغير المحدد في Java. الفرق الرئيسي بين الاستثناء المحدد وغير المحدد في Java هو أن الاستثناء المحدد يتم فحصه بواسطة المترجم بينما لا يتم التحقق من الاستثناء غير المحدد بواسطة المترجم.
ما هو الاستثناء المحدد في Java؟
عند حدوث استثناء محدد ، يتم توصيل تطبيق Java بمورد خارجي. يمكن أن يكون هذا المورد جهازًا مثل الطابعة. يمكن أن يكون ملفًا أو قاعدة بيانات. لذلك ، يتم فحص هذه الاستثناءات من قبل المترجم. استثناء الإدخال / الإخراج هو استثناء محدد. يحدث بسبب خطأ في الجهاز. عندما يقوم التطبيق بالوصول إلى ملف غير موجود ، فسوف يتسبب ذلك في استثناء FileNotFound. يمكن توصيل تطبيق بقاعدة بيانات مثل MySQL و Oracle وما إلى ذلك لتخزين البيانات. إذا حدث خطأ متعلق بقاعدة بيانات ، فسيكون استثناء SQL. هذه بعض الأمثلة على الاستثناءات التي تم التحقق منها. في كل ذلك ، يرتبط التطبيق بمصدر خارجي.في الاستثناءات المحددة ، من الضروري معالجة الاستثناء. إذا لم تتم معالجته ، فسيتم إنهاء التدفق الصحيح للبرنامج ولن يتم إنشاء ملف الفصل الدراسي. يمكن معالجة الخطأ باستخدام كتلة try، catch.
الشكل 01: فحص معالجة الاستثناء
وفقًا لما سبق ، يقوم FileReader بقراءة البيانات من الملف. الملف text1.txt غير موجود في الموقع المحدد. يتم وضع الكود الذي يمكن أن يعطي الاستثناء داخل كتلة try. توجد الرسالة المراد طباعتها داخل كتلة الالتقاط. نظرًا لعدم وجود ملف يسمى text1.txt ، فإن هذا يتسبب في FileNotFoundException. باستخدام معالجة الاستثناءات ، تتم طباعة الرسالة على الشاشة.
ما هي الاستثناءات التي لم يتم التحقق منها في Java؟
لا يتم فحص الاستثناءات التي لم يتم التحقق منها بواسطة المترجم.بخلاف الاستثناءات المحددة ، مع استثناءات غير محددة ، لا يتم توصيل تطبيق Java بمصدر خارجي مثل ملف أو قاعدة بيانات أو جهاز. بعض الاستثناءات الشائعة غير المحددة هي استثناءات الحساب و ArrayOutOfBound و NullPointer.
int a=10 ، b=0 ؛
int div=a / b ؛
System.out.println (div) ؛
سيؤدي هذا إلى استثناء حسابي بسبب الغوص "a" على الصفر. راجع الكود أدناه
الشكل 02: معالجة الاستثناءات الحسابية
وفقًا للبرنامج أعلاه ، المتغير a هو قيمة عدد صحيح. المتغير b هو 0. قسمة هذين العددين هي قسمة على صفر. لذلك ، سوف يتسبب في استثناء حسابي. يمكن التعامل معها باستخدام كتلة try-catch.يتم وضع العبارات التي يمكن أن تسبب الاستثناء داخل كتلة try. الرسالة التي سيتم عرضها في كتلة catch.
راجع الجزء أدناه من الكود.
int array1 ={1، 2، 3، 4، 5} ؛
System.out.println (array1 [5]) ؛
سيؤدي هذا إلى استثناء. المصفوفة 1 هي مصفوفة مكونة من 5 عناصر. فهرس بداية المصفوفة هو صفر. تؤدي طباعة قيمة الفهرس 5thإلى استثناء لأنها خارج الحدود. الحد الأقصى لمؤشر المصفوفة 1 هو 4.
الشكل 03: معالجة استثناء ArrayOutOfBound
وفقًا للبرنامج أعلاه ، تتكون المصفوفة 1 من 5 عناصر. ستؤدي طباعة العنصر بالفهرس 6 إلى استثناء لأنه خارج النطاق. الحد الأقصى للفهرس الذي يمكن تخزينه في المصفوفة 1 هو 5. تتم طباعة رسالة الخطأ عن طريق تنفيذ كتلة catch.
ما هو التشابه بين الاستثناء المدقق وغير المحدد في Java
كل من الاستثناءات المحددة وغير المحددة في Java هما نوعان من الاستثناءات في Java
ما هو الفرق بين الاستثناء المدقق وغير المحدد في Java؟
تم الفحص مقابل استثناء غير محدد في Java |
|
الاستثناء المحدد هو خطأ في وقت التشغيل يتم التحقق منه بواسطة المترجم. | الاستثناء الذي لم يتم التحقق منه هو خطأ وقت تشغيل لم يتم التحقق منه من قبل المترجم. |
حدث | |
عند حدوث استثناء محدد ، يتم توصيل تطبيق Java بمورد خارجي مثل ملف أو جهاز أو قاعدة بيانات. | عند حدوث استثناء غير محدد ، فإن تطبيق Java غير متصل بمورد خارجي. |
أمثلة | |
IOException و FileNotFoundException و SQLException هي بعض الأمثلة على الاستثناءات المحددة. | الاستثناء الحسابي ، ArrayOutOfBoundException ، NullPointerException هي بعض الأمثلة على الاستثناءات التي لم يتم التحقق منها. |
ملخص - فحص مقابل استثناء لم يتم التحقق منه في Java
الاستثناء هو حدث يقطع تنفيذ تدفق البرنامج. هناك نوعان من الاستثناءات. يطلق عليهم الاستثناءات المحددة والاستثناءات غير المحددة. ناقشت هذه المقالة الفرق بين استثناء محدد واستثناءات غير محددة. الفرق بين الاستثناء المحدد وغير المحدد في Java هو أن الاستثناء المحدد يتم فحصه بواسطة المترجم بينما لا يتم التحقق من الاستثناء غير المحدد بواسطة المترجم. نظرًا لأن الاستثناءات تؤثر على التدفق الصحيح لتنفيذ البرنامج ، فمن الممارسات البرمجية الجيدة التعامل معها.