هناك دائمًا مشاكل مختلفة في البرنامج. من أجل تمكين التشغيل العادي أثناء تنفيذ البرنامج ، يتم استخدام آلية معالجة الاستثناءات التي توفرها Java لالتقاط استثناءات محتملة ، والتعامل مع الاستثناءات ، وتمكين البرنامج من التشغيل بشكل طبيعي. هذا هو معالجة استثناء جافا.
1. استثناءات قابلة للقبض
يتم تقسيم الاستثناءات التي يمكن اكتشافها في Java إلى استثناءات يمكن التحكم فيها ووقت التشغيل.
1. استثناءات يمكن التحكم فيها
في Java ، يمكن معالجة هذه الأخطاء التي يمكن التنبؤ بها أثناء تجميع البرنامج ويمكن إعطاء معلومات خطأ محددة. وتسمى هذه الأخطاء استثناءات يمكن التحكم فيها. الاستثناءات الشائعة الاستخدام هي كما يلي:
استثناء الوصف ioException عند حدوث بعض الاستثناء I/O ، يتم طرح هذا الاستثناء. يوفر SQLexception معلومات حول أخطاء الوصول إلى قاعدة البيانات أو أخطاء أخرى. ClassNotFoundException. لم يتم العثور على الاستثناء. NosuchfieldException. الإشارة التي تم إنشاؤها عندما لا تحتوي الفئة على حقل يحمل الاسم المحدد. nosuchmethodexception. تم طرح الاستثناء.
2. استثناء وقت التشغيل
تسمى الأخطاء التي لا يمكن اكتشافها من قبل المترجم في Java استثناءات وقت التشغيل. استثناءات وقت التشغيل الشائعة هي كما يلي:
استثناء الوصف indexoutofboundsexception يشير إلى أن الاستثناء يتم إلقاؤه عندما تكون قيمة فهرس المجموعة أو الصفيف خارج نطاق nullpointerexception يلقي الاستثناء عندما يحاول التطبيق استخدام فارغة حيث يكون الكائن مطلوبًا ArithMeticexceptive inting to method to to to to stisplication stared insctix ins starex parame to to to to to to to refressex to to to to the stispose to to the stistem. الفئة الفرعية التي ليست مثال
2. التعامل مع الاستثناءات
عندما يحدث استثناء في Java ، يمكنك استخدام Try ... catch ، حاول ... التقاط ... أخيرًا أو حاول ... أخيرًا للتعامل معه.
1. استخدم المحاولة .... Catch للتعامل مع الاستثناءات
بعد المحاولة ، هناك عبارات تنفذ بشكل طبيعي ، وبعد الصيد ، هناك عبارات تتعامل مع استثناءات. أقواس الصيد هي أنواع الاستثناءات التي يحتاجها البرنامج إلى التعامل معها. تنسيق بناء الجملة كما يلي:
جرب {عبارات تنفذ عادة} catch (استثناء e) {عبارات تعالج الاستثناءات}فيما يلي مثال على الاستثناء الحساب ، على النحو التالي.
استثناء الفئة العامة {public static void main (string [] args) {int result = 1/0 ؛ حاول {system.out.println (result) ؛ } catch (استثناء e) {system.out.println ("استثناء رمي:" + e.getMessage ()) ؛ }}}هنا 1/0 هي خوارزمية استثناء لأن المقسوم لا يمكن أن يكون 0. نتائج التشغيل هي كما يلي:
نظرًا لوجود استثناء ، لا يتم تنفيذ البيان بعد المحاولة ، لذلك يتم تنفيذ البيان بعد الصيد. من بينها ، "E.GetMessage ()" هي طريقة للحصول على معلومات استثناء ، والتي يتم استخدامها للحصول على سلاسل رسائل مفصلة ؛ بالإضافة إلى ذلك ، هناك أيضًا طريقة printstacktrace () ، والتي يتم استخدامها لإخراج تتبع المكدس إلى دفق خطأ قياسي ؛ ويستخدم طريقة ToString () للحصول على وصف قصير.
2. استخدم المحاولة. يمسك. أخيرا التعامل مع الاستثناءات
هنا ، فإن العبارات بعد المحاولة والقبض هي نفسها من قبل ، والبيانات بعد أن تم تنفيذها أخيرًا بغض النظر عما إذا كان هناك استثناء. لذلك ، عادة ما يتم استخدام كتلة البيان أخيرًا لأداء جمع القمامة. تنسيق بناء الجملة كما يلي:
جرب {العبارات التي تنفذ بشكل طبيعي} catch (استثناء e) {عبارات تتعامل مع الاستثناءات} أخيرًا {عبارات سيتم معالجتها بالتأكيد}3. استخدم المحاولة. أخيرا التعامل مع الاستثناءات
عندما يحدث استثناء في البرنامج ، يمكن معالجته وفقًا لذلك في كتلة البيان أخيرًا. بالإضافة إلى ذلك ، عندما لا يكون هناك استثناء في البرنامج ، بعد تنفيذ البيان بين المحاولة وأخيراً ، سيتم تنفيذ الرمز في كتلة البيان أخيرًا. تنسيق بناء الجملة كما يلي:
جرب {عبارات يجب تنفيذها} أخيرًا {عبارات ستتم معالجتها بالتأكيد}3. رمي استثناء
للاستثناءات التي تحدث في البرنامج ، بالإضافة إلى ما ورد أعلاه ، حاول معالجة بيان الصيد ، يمكنك أيضًا استخدام إعلان رميات أو بيان رمي لرمي الاستثناءات.
1. استخدم إعلان رميات لرمي الاستثناء
يتم استخدام الرميات لإعلان الطريقة ، ويلقي استثناء عند إعلان طريقة باستخدام إعلان رمي ، ثم يتعامل مع الاستثناء في استدعاء الطريقة.
إذا كنت بحاجة إلى إعلان استثناءات متعددة ، فيجب فصل كل استثناء عن طريق الفواصل ، وتنسيق بناء الجملة كما يلي:
اسم طريقة نوع البيانات (قائمة المعلمة الرسمية) رمي استثناء الفئة 1 ، استثناء الفئة 2 ، ... ، فئة الاستثناء n {method body ؛}على سبيل المثال ، رمي استثناء استثناء باستخدام رميات.
public void showInfo () يلقي استثناء {// رمي الاستثناء fileInputStream في = جديد fileInputStream ("c: //record.txt") ؛ // إنشاء كائن IO}2. استخدم بيان رمي لرمي الاستثناء
إذا كنت تريد أن يرمي البرنامج استثناء من تلقاء نفسه ، فيمكنك استخدام بيان الرمي لتحقيقه. تنسيق بناء الجملة كما يلي: رمي استثناء جديد ("استثناء") ؛
ما يتم إلقاؤه باستخدام بيان الرمي هو مثيل لفئة الاستثناء ، وعادة ما يتم استخدامه مع البيان IF. يحب:
إذا (x <0) {رمي استثناء جديد ("استثناء البرنامج ، لا يمكن أن يكون x أقل من 0.") ؛}