تركز هذه المقالة على بعض مفاهيم آلية الاستثناء في Java. الغرض من كتابة هذا المقال هو تسهيلني لتذكر هذه الأشياء بعد وقت طويل.
1. آلية الاستثناء
1.1 تشير آلية الاستثناء إلى كيفية معالجة البرنامج عند حدوث خطأ. على وجه التحديد ، توفر آلية الاستثناء قناة آمنة لخروج البرنامج. عند حدوث خطأ ، تتغير عملية تنفيذ البرنامج ويتم نقل التحكم في البرنامج إلى معالج الاستثناء.
1.2 الطريقة التقليدية للتعامل مع الاستثناءات هي أن الوظيفة تعيد نتيجة خاصة للإشارة إلى حدوث استثناء (عادةً ما تُعرف هذه النتيجة الخاصة بشكل شائع كما هي) ، والبرنامج الذي يستدعي الوظيفة مسؤول عن التحقق من النتائج التي تم إرجاعها بواسطة الوظيفة. هذا له العيوب التالية: على سبيل المثال ، إذا كانت الوظيفة تُرجع -1 ، فهذا يعني حدوث استثناء ، ولكن إذا كانت الوظيفة تريد إرجاع القيمة الصحيحة -1 ، فسيتم الخلط بينها ؛ يتم تقليل قابلية القراءة ، ويتم خلط رمز البرنامج مع الكود الذي يتولى الاستثناء ؛ يحلل البرنامج الذي يستدعي الوظيفة الخطأ ، والذي يتطلب من مبرمج العميل أن يكون له فهم عميق لوظائف المكتبة.
1.3 عملية التعامل مع الاستثناء
1.3.1 عند مواجهة خطأ ، تنتهي الطريقة على الفور ولا تُرجع قيمة ؛ في الوقت نفسه ، يتم إلقاء كائن استثناء.
1.3.2 لن يستمر البرنامج الذي يستدعي هذه الطريقة في التنفيذ ، ولكن يبحث عن معالج استثناء يمكنه التعامل مع الاستثناء وتنفيذ الرمز فيه.
2 تصنيف الاستثناءات
2.1 تصنيف الاستثناءات
2.1.1 بنية الميراث للاستثناءات: الفئة الأساسية يمكن رميها ، والخطأ والاستثناء الموروث ، و runtimeexception و ioexception ، وما إلى ذلك ، وترث RunTimeException المحدد RunTimeException.
2.1.2 خطأ و RunTimeException ودراساتهم الفرعية تصبح استثناءات لم يتم التحقق منها ، والاستثناءات الأخرى تصبح استثناءات محددة.
2.2 خصائص كل نوع من الاستثناءات
2.2.1 نظام الخطأ يصف نظام فئة الخطأ الأخطاء الداخلية وإرهاق الموارد في نظام تشغيل JAVA. يجب ألا ترمي التطبيقات كائنات من هذا النوع (عادة ما يتم إلقاؤها بواسطة الأجهزة الافتراضية). في حالة حدوث مثل هذا الخطأ ، لا يوجد شيء آخر يمكن القيام به باستثناء محاولة جعل البرنامج يخرج بأمان. لذلك ، عند تصميم البرمجة ، يجب أن تولي المزيد من الاهتمام لنظام الاستثناء.
2.2.2 استثناء نظام الاستثناء يتضمن نظام RUNTIMEEXCESTION وأنظمة غير أخرى
2.2.2.1 RunTimeException يتضمن نظام RunTimeException تحويل نوع خاطئ ، والوصول خارج الحدود ، ومحاولات الوصول إلى المؤشرات الخالية ، وما إلى ذلك. مبدأ التعامل مع RunTimeException هو: إذا حدث RunTimeException ، فيجب أن يكون خطأ مبرمج. على سبيل المثال ، يمكن تجنب استثناءات الوصول خارج الحدود عن طريق التحقق من مشتركات الصفيف وحدود المصفوفة.
2.2.2.2 استثناءات أخرى (IOException ، وما إلى ذلك) مثل هذه أخطاء خارجية ، مثل محاولة قراءة البيانات من نهاية الملف ، وما إلى ذلك. هذا ليس خطأ في البرنامج نفسه ، ولكن خطأ خارجي يحدث في بيئة التطبيق.
2.3 الاختلافات من تصنيف استثناء C ++
2.3.1 في الواقع ، فإن اسم فئة RunTimeException في Java غير مناسب ، لأن أي استثناء يحدث في وقت التشغيل. (الأخطاء التي تحدث أثناء التجميع ليست استثناءات. وبعبارة أخرى ، فإن الاستثناءات هي حل الأخطاء التي تحدث أثناء تشغيل البرنامج).
2.3.2 logic_error في C ++ يعادل RunTimeException في Java ، في حين أن Runtime_Error يعادل استثناءات أنواع غير rottimeexception في Java.
3. كيفية استخدام الاستثناءات
3.1 إعلان الطريقة يلقي الاستثناء
3.1.1 بناء الجملة: رميات (تم حذفها)
3.1.2 لماذا نحتاج إلى إعلان طريقة لرمي استثناء؟ ما إذا كان الطريقة التي ترمي استثناء لا تقل أهمية عن نوع قيمة إرجاع الطريقة. على افتراض أن الطريقة تطرح استثناء ، لا تعلن أن الطريقة ستقوم بإلقاء استثناء ، ثم يمكن لمبرمج العميل استدعاء هذه الطريقة دون كتابة رمز للتعامل مع الاستثناء. ثم ، بمجرد حدوث استثناء ، لا يوجد وحدة تحكم استثناء مناسبة لحل هذا الاستثناء.
3.1.3 لماذا الاستثناء الذي تم إلقاؤه بالضرورة استثناء تم فحصه بالضرورة؟ يمكن إنشاء RunTimeException والخطأ في أي رمز. لا يحتاجون إلى إلقاؤه من قبل المبرمج. بمجرد حدوث خطأ ، سيتم إلقاء الاستثناء المقابل تلقائيًا. يتم إلقاء الاستثناء الذي تم فحصه من قبل المبرمج ، الذي ينقسم إلى حالتين: يدعو مبرمج العميل إلى وظيفة المكتبة التي ترمي الاستثناء (استثناء وظيفة المكتبة يتم إلقاؤها بواسطة مبرمج المكتبة) ؛ يلقي مبرمج العميل الاستثناء بنفسه باستخدام بيان الرمي. عند مواجهة خطأ ، يكون المبرمجون عاجزون بشكل عام ؛ عند مواجهة RunTimeException ، يجب أن يكون هناك خطأ منطقي في البرنامج ويجب تعديل البرنامج (أي ما يعادل طريقة تصحيح الأخطاء) ؛ الاستثناء الذي تم فحصه فقط هو ما يهتم به المبرمجين ، ويجب على البرنامج ويجب أن يرمي أو التعامل مع الاستثناء الذي تم فحصه فقط.
3.1.4 ملاحظة: لا يمكن أن تطرد طريقة الفئة الفرعية التي تغطي طريقة معينة من الفئة الأصل استثناءات أكثر من طريقة الفئة الأصل. لذلك ، في بعض الأحيان عند تصميم طريقة فئة الأصل ، سيتم الإعلان عن الاستثناءات ، لكن الكود الفعلي لتنفيذ الطريقة لا يلقي استثناءات. والغرض من ذلك هو تسهيل طريقة الفئة الفرعية للكتابة فوق طريقة فئة الأصل.
3.2 كيفية رمي استثناء
3.2.1 بناء الجملة: رمي (تم حذفه)
3.2.2 ما هو الاستثناء الذي تم طرحه؟ بالنسبة إلى كائن استثناء ، يكون نوع الكائن مفيدًا حقًا عندما يكون الاستثناء من نوع الكائن ، وكائن الاستثناء نفسه لا معنى له. على سبيل المثال ، إذا كان نوع كائن الاستثناء هو ClassCastException ، فإن اسم الفئة هذا هو المعلومات المفيدة الوحيدة. لذلك ، عند اختيار الاستثناء الذي يجب إلقاؤه ، فإن أهم شيء هو تحديد اسم الفصل للاستثناء الذي يمكن أن يفسر بوضوح موقف الاستثناء.
3.2.3 عادة ما يكون هناك مُنشئان لكائنات الاستثناء: أحدهما مُنشئ بدون معلمات ؛ والآخر هو مُنشئ ذو سلسلة ، سيتم استخدامه كوصف إضافي لكائن الاستثناء هذا بالإضافة إلى اسم النوع.
3.2.4 قم بإنشاء استثناء خاص بك: عندما لا تستطيع أي من الاستثناءات المدمجة في Java شرح موقف الاستثناء بوضوح ، فأنت بحاجة إلى إنشاء استثناء خاص بك. تجدر الإشارة إلى أن الشيء الوحيد المفيد هو معلومات اسم النوع ، لذلك لا تنفق الطاقة على تصميم فصول الاستثناء.
3.3 استثناءات التقاط إذا لم تتم معالجة استثناء ، ثم بالنسبة لبرنامج الواجهة غير الفترات ، سيتم إحباط البرنامج وإخراج معلومات استثناء الإخراج ؛ بالنسبة لبرنامج الواجهة الرسومية ، سيتم أيضًا إخراج معلومات الاستثناء ، لكن البرنامج لا يعمل على الإحباط ، ولكنه يعود إلى حلقة معالجة واجهة المستخدم.
3.3.1 بناء الجملة: يجب أن تكون المحاولة ، والقبض وأخيراً (حذف) وحدات التحكم في وحدة التجربة مباشرة. إذا تم طرح استثناء ، فستبحث آلية التحكم في الاستثناء عن وحدة التحكم الأولى التي تتطابق معلماتها مع نوع الاستثناء ثم أدخل شرط الصيد واعتقد أن الاستثناء قد تم التحكم فيه. سيتوقف البحث عن وحدة التحكم أيضًا بمجرد انتهاء شرط الصيد.
3.3.1.1 التقاط استثناءات متعددة (لاحظ بناء الجملة وترتيب الالتقاط) (تم حذفه)
3.3.1.2 الاستخدام والاستثناء عملية التعامل مع أخيرًا (تم حذفها)
3.3.2 ماذا يفعل معالجة الاستثناء؟ بالنسبة إلى Java ، بسبب جمع القمامة ، لا يتطلب معالجة الاستثناءات إعادة تدوير الذاكرة. ومع ذلك ، لا تزال هناك بعض الموارد التي يحتاج المبرمجون إلى جمعها ، مثل الملفات واتصالات الشبكة والصور.
3.3.3 هل يجب أن ترمي الطريقة استثناء أو تلتقط استثناء في هذه الطريقة؟ المبدأ: التقاط الاستثناءات والتعامل معها تعرف كيفية التعامل معها ، وتمرير الاستثناءات التي لا تعرف كيفية التعامل معها
3.3.4 رمي استثناء مرة أخرى
3.3.4.1 لماذا أرمي استثناء مرة أخرى؟ في هذا المستوى ، يمكن معالجة جزء فقط من المحتوى ، ويجب إكمال بعض المعالجة في بيئة أعلى مستوى ، لذلك ينبغي إلقاء استثناء مرة أخرى. يتيح هذا كل مرحلة من مراحل معالج الاستثناء التعامل مع الاستثناءات التي يمكنه التعامل معها.
3.3.4.2 سيتم تجاهل كتلة الصيد التي تتوافق مع كتلة المحاولة نفسها ، وسيدخل الاستثناء الذي تم طرحه مستوى أعلى.
4 أسئلة أخرى حول الاستثناءات
4.1 الاستثناء المفرط أولاً وقبل كل شيء ، من المريح للغاية استخدام الاستثناءات ، لذلك لم يعد المبرمجون مستعدين بشكل عام لكتابة الرموز للتعامل مع الأخطاء ، ولكن ببساطة رمي استثناء. هذا خطأ. بالنسبة للأخطاء المعروفة تمامًا ، يجب كتابة التعليمات البرمجية التي تتعامل مع مثل هذه الأخطاء لزيادة متانة البرنامج. بالإضافة إلى ذلك ، فإن كفاءة الآلية غير الطبيعية سيئة للغاية.
4.2 تقسيم الاستثناءات من الأخطاء العادية. بالنسبة للأخطاء العادية ، يجب كتابة الرموز التي تتعامل مع مثل هذه الأخطاء لزيادة متانة البرنامج. الاستثناءات مطلوبة فقط للأخطاء الخارجية غير المحددة والمتوقعة في وقت التشغيل.
4.3 المعلومات الواردة في كائنات استثناء بشكل عام ، المعلومات المفيدة الوحيدة لكائنات الاستثناء هي نوع المعلومات. ولكن عند استخدام مُنشئ سلسلة استثناء ، يمكن أيضًا استخدام هذه السلسلة كمعلومات إضافية. يمكن استدعاء طرق getMessage () أو tostring () أو printStackTrace () لكائن الاستثناء الحصول على معلومات إضافية واسم الفصل ومعلومات مكدس الاتصال على التوالي. والأخير يحتوي على معلومات هي superset من الأول.
استثناءات شائعة الاستخدام:
العمليات غير مدعومة من قبل عدم الدعم
غير شرعي المعلمات غير القانونية
indexoutofboundsexception index outbound
دولة غير قانونية غير قانونية
هناك فرق معين بين التحذيرات غير الطبيعية والعادية. عندما يحدث استثناء في التطبيق ، سيتم مقاطعة التدفق الطبيعي لتعليمات البرنامج التنفيذي. وهذا يعني أن الكود بعد حدوث استثناء لن يتم تنفيذه بشكل صحيح. حتى أنه يؤدي إلى عملية تراجع قاعدة البيانات.
في منصة تطوير Java ، تتضمن الاستثناءات استثناءات محددة مسبقًا واستثناءات مخصصة. هذان النوعان من الاستثناء يكملان بعضهما البعض. كمطور مؤهل للبرامج ، كن جيدًا في استخدام الاستثناءات في التطبيقات. هذا يمكن أن يحسن تفاعل التطبيق. في الوقت نفسه ، يعد أيضًا شرطًا أساسيًا لضمان التشغيل العادي للتطبيق. لذلك ، فإن التعامل مع الاستثناء مهم جدًا لتطوير تطبيق ممتاز. لهذا السبب ، يعتقد المؤلف أن مطوري البرامج يجب أن يكون لديهم فهم متعمق للاستثناءات المشتركة في تطبيقات Java. فقط عندما تفهم هذه الاستثناءات الشائعة ، يمكنك التعامل مع الاستثناءات المخصصة جيدًا.
1. أنواع وأسباب الاستثناءات الشائعة.
فيما يتعلق بالاستثناءات الشائعة في تطبيقات Java ، يعتقد المؤلف أن مطوري البرامج يجب أن يفهموها من جانبين. أولاً ، نحتاج إلى معرفة ما هي استثناءات تطبيق Java المشتركة ، وثانياً ، نحتاج إلى معرفة الأسباب التي قد تسبب هذا الاستثناء. هذا لا يتطلب فقط من مديري البرامج الانتباه إلى التراكم في عملهم اليومي ، ولكن يحتاج أيضًا إلى جمع المعلومات من قنوات أخرى إذا لزم الأمر. سيقوم المؤلف بإجراء تحليل حول هذا الموضوع ، على أمل أن يكون بعض المساعدة لجميع مطوري البرامج.
1. Sqlexception: تشغيل فئة استثناء قاعدة البيانات.
تعتمد معظم تطبيقات Java اليوم على قواعد البيانات لتشغيلها. سيتم تشغيل هذه الفئة في حالة حدوث خطأ عندما يتصل تطبيق Java باستخدام قاعدة البيانات. في الوقت نفسه ، سيتم عرض معلومات خطأ قاعدة البيانات إلى المستخدم من خلال هذه الفئة. بمعنى آخر ، فئة استثناء قاعدة البيانات هذه هي جسر لنقل معلومات الاستثناء بين قاعدة البيانات والمستخدم. على سبيل المثال ، يقوم المستخدم الآن بإدراج البيانات في النظام ، وينص على أن حقل معين يجب أن يكون فريدًا في قاعدة البيانات. عندما يقوم المستخدم بإدراج البيانات ، إذا تكررت قيمة هذا الحقل مع السجل الحالي ، فإنه ينتهك قيود التفرد في قاعدة البيانات ، وسيتم إصدار رسالة استثناء من قاعدة البيانات. قد لا تكون هذه المعلومات مرئية للمستخدمين لأنها تحدث على مستوى قاعدة البيانات. في هذا الوقت ، ستقوم فئة استثناء قاعدة البيانات هذه بتقاط معلومات استثناء قاعدة البيانات وتقرير معلومات الاستثناء إلى المقدمة. وبهذه الطريقة ، يمكن لمستخدم مكتب الاستقبال تحليل سبب الخطأ بناءً على معلومات الاستثناء هذه. هذا هو الغرض الرئيسي من فئة استثناء قاعدة بيانات التشغيل هذه. في تطبيقات Java ، سيتم تشغيل هذه الفئة عندما تحدث جميع عمليات قاعدة البيانات. غالبًا ما تكون جميع المعلومات السريعة لتطبيق Java بحد ذاتها عامة جدًا في هذا الوقت ، فقط قول أن هناك خطأ في التفاعل مع قاعدة البيانات وليس له قيمة مرجعية كبيرة. في هذا الوقت ، تكون معلومات موجه قاعدة البيانات أكثر قيمة.
2. classcastexception: استثناء تحويل نوع البيانات.
في تطبيقات Java ، في بعض الأحيان يجب تحويل نوع البيانات. يتضمن هذا التحويل تحويلات معروضة وتحويلات ضمنية. ومع ذلك ، بغض النظر عن كيفية تحويلك ، يجب أن تلبي شرطًا مسبقًا ، أي توافق أنواع البيانات. إذا تم انتهاك هذا المبدأ أثناء عملية تحويل البيانات ، فسيتم تشغيل استثناء تحويل نوع البيانات. على سبيل المثال ، في التطبيقات الآن ، يحتاج المطورون إلى تحويل بيانات تاريخ نوع الأحرف إلى بيانات من النوع الذي يمكن قبوله بواسطة قاعدة البيانات. في هذا الوقت ، يحتاجون فقط إلى السيطرة عليه في التطبيق الأمامي ، ولن تكون هناك أي مشاكل عمومًا. ومع ذلك ، إذا كان تطبيق المقدمة يفتقر إلى التحكم ذي الصلة ، مثل المستخدم يدخل فقط في الشهر واليوم عند إدخال التاريخ ، ولكن ليس لديه معلومات العام. في هذا الوقت ، سيظهر استثناء عندما يقوم التطبيق بإجراء تحويل نوع البيانات. وفقًا لتجربتي ، تتسبب استثناءات تحويل نوع البيانات في حدوث المزيد من الاستثناءات في تطوير التطبيق ، كما أنها استثناءات منخفضة المستوى نسبيًا. لأنه في معظم الحالات ، يمكن تنفيذ بعض التحكم القسري على أنواع البيانات في نافذة التطبيق. أي قبل تحويل نوع البيانات ، يتم ضمان توافق نوع البيانات. في هذه الحالة ، لن يكون من السهل التسبب في استثناءات تحويل نوع البيانات. إذا كانت في الحقول تسمح فقط بأنواع رقمية ، فمن الممكن تعيين أحرف أخرى غير القيم الرقمية التي لا يُسمح بالدخول إليها. على الرغم من أن آلية التعامل مع الاستثناء ، فإن التطبيق لن يتم تشغيله بشكل غير صحيح. ومع ذلك ، في التطور الفعلي ، لا يزال يتعين علينا التنبؤ بأكبر قدر ممكن من أسباب الأخطاء ومحاولة تجنب التشوهات.
3. numberformatexception: استثناء يتم إلقاؤه عند تحويل السلسلة إلى نوع رقمي.
أثناء عملية تحويل نوع البيانات ، إذا كانت هناك مشكلة تحدث أثناء عملية تحويل الأحرف إلى التحويل العددي ، يتم استخدام استثناء مستقل في برنامج Java ، وهو NumberFormatexception. على سبيل المثال ، عندما يتم تحويل بيانات نوع الأحرف "123456" إلى بيانات رقمية ، يُسمح بذلك. ومع ذلك ، إذا كانت بيانات نوع الحرف تحتوي على أحرف غير رقمية ، مثل 123#56 ، سيظهر استثناء عند تحويله إلى نوع رقمي. سيقوم النظام باستيلاء هذا الاستثناء ويعالجه.
هناك العديد من فئات الاستثناءات الشائعة في تطبيقات Java. إذا لم يتم العثور على استثناء الفئة المقابلة ، فلا يُسمح للوصول إلى بعض استثناءات الفصل الدراسي ، فقد انتهى الملف استثناء ، ولم يعثر الملف على استثناء ، ولم يعثر الحقل على استثناء ، وما إلى ذلك. يمكن لمطوري النظام بشكل عام الحكم على نوع الاستثناء الحالي بناءً على اسم الاستثناء هذا. على الرغم من أنها جيدة ، إلا أن الذاكرة الجيدة ليست جيدة مثل القلم السيئ. عند الضرورة (خاصةً عندما يكون هناك استثناء مخصص) ، لدى مطور البرنامج أخيرًا قائمة استثناءات في متناول اليد. في هذه الحالة ، ما إذا كان التطبيق يكتشف مشكلة أثناء تصحيح الأخطاء أو يتلقى شكوى من المستخدم أثناء العملية ، يمكنك العثور على سبب الاستثناء بناءً على اسم الاستثناء في الوقت المناسب. يتيح ذلك حل الاستثناءات في أقصر وقت ويعيد التشغيل العادي للتطبيق. تم استخدام هذا التدبير لسنوات عديدة وفعالة للغاية.
2. اقتراحات عملية لإدارة الاستثناء.
لاستثناءات قاعدة البيانات ، توفر تطبيقات Java فئة استثناء واحدة فقط. لذلك ، فإن الاعتماد فقط على معلومات الخطأ في تطبيقات Java لا يمكن أن يساعد موظفي التطبيق على التخلص من أسباب الخطأ. يمكنك فقط تحديد ما إذا كان هذا الاستثناء ناتجًا عن خطأ في التطبيق أو خطأ في قاعدة البيانات. من أجل تحديد سبب المشكلة ، من الأفضل شرح السبب المحدد عند تحديد الاستثناءات على مستوى قاعدة البيانات. على سبيل المثال ، يجوز للتطبيق الأمامي استدعاء وظائف أو إجراءات قاعدة البيانات. في هذا الوقت ، يمكن للقيام بعمل جيد في وظيفة أو العملية قاعدة البيانات أن يفسر السبب المحدد لاستثناء معين. على سبيل المثال ، عند إنشاء جدول آخر استنادًا إلى جدول أساسي معين ، لا يمكن أن يكون حقل معين فارغًا ، وما إلى ذلك. بعد شرح معلومات الاستثناء هذه بوضوح ، إذا واجهت استثناءات مماثلة حقًا ، فإن تشغيل فئة استثناء قاعدة البيانات ستعكس معلومات استثناء قاعدة البيانات إلى المستخدم الأمامي. سيساعد ذلك المستخدمين في العثور على سبب المشكلة وتصحيحها في أقصر وقت. بالطبع ، هذا يتطلب التنسيق بين مبرمجي Java ومصممي قواعد البيانات.
ثانياً ، تجدر الإشارة إلى أن الاستثناءات ليست هي القاعدة. وبعبارة أخرى ، يمكن القضاء على معظم التشوهات من خلال التبصر المعقول والوقاية من الفرضية. إذا تم تصميمه على عمليات أربع نقاط ، فيمكنك تقييد إدخال 0 قيم 0 في حقل العدد السابق في نافذة التطبيق المقدمة لإزالة الاستثناءات المحتملة أثناء تشغيل التطبيق. ومع ذلك ، فإن هذا غالبًا ما يتطلب من مطوري التطبيق أن يتمتعوا بخبرة عمل غنية ولديهم منطق تفكير صارم. على الرغم من أن هذا أمر صعب ، إلا أن المؤلف يعتقد أنه يجب على مطوري البرامج العمل بجد في هذا الصدد ، بدلاً من السماح للمستخدمين دائمًا بتشغيلك للسماح للمستخدمين باكتشاف الأخطاء في التطبيق. يعتقد المؤلف أنه لا يُسمح بإلقاء الاستثناءات إلا عندما تكون بعض العوامل التي تتجاوز حقًا سيطرة المبرمجين. إذا كان بإمكان مطوري التطبيق أن يكونوا على دراية بهذا الخطأ ، لكنهم لا يزالون لا ينتبهون إليه أو يتخذون تدابير فعالة لمنع هذا الشذوذ ، فلن يسمح المؤلف بذلك.
ArithMeticexception (استثناء مع المقسوم 0) ، BufferoverFlowException (استثناء الفائض العازلة) ، BufferUnderFlowException (استثناء underflow العازلة) ، indexoutofboundsexception (استثناء خارجي) ، غير قانونية (غير قانونية) ، nullpointerxception (nullpointerxception) NosuchelementException ، SecurityException ، SystemException ، غير المعلن
1. java.lang.nullpointerxception
شرح الاستثناء هو "يواجه البرنامج مؤشرًا فارغًا". ببساطة ، فهذا يعني استدعاء كائن غير مهيئ أو كائن غير موجود ، أي إرباك تهيئة الصفيف مع تهيئة عناصر الصفيف. تهيئة الصفيف هي تخصيص المساحة المطلوبة للمصفوفة. لا يتم إنشاء مثيل للعناصر الموجودة في الصفيف المهيئة ولا تزال فارغة ، لذلك يجب تهيئة كل عنصر (إذا كنت ترغب في تسميته)
2. java.lang.classnotfoundException
شرح الاستثناء هو "الفئة المحددة غير موجودة".
3. java.lang.arithmeticexception
شرح هذا الاستثناء هو "استثناء العملية الرياضية". على سبيل المثال ، إذا ظهرت عملية مثل تقسيم على الصفر في البرنامج ، فسيحدث هذا الاستثناء.
4. java.lang.arrayindexoutofboundsexception
شرح الاستثناء هو "انتشار صفيف خارج الحدود". معظم البرامج لديها الآن عمليات في المصفوفات. لذلك ، عند استدعاء المصفوفات ، يجب عليك التحقق بعناية لمعرفة ما إذا كانت المشتركين الذي تتصل به يتجاوز نطاق الصفيف. بشكل عام ، ليس من السهل ارتكاب مثل هذه الأخطاء عن طريق استدعاء العرض (أي استخدام الثوابت مباشرة إلى المكالمات الفرعية) ، ولكن ضمنيًا (أي استخدام المتغيرات لتمثيل المشتركين) غالبًا ما يرتكب أخطاء. هناك موقف آخر يتم فيه تحديد طول المصفوفة المحددة في البرنامج بطرق محددة معينة ولا يتم الإعلان عنها مسبقًا. في هذا الوقت ، من الأفضل التحقق من طول الصفيف أولاً لتجنب هذا الاستثناء.
5. java.lang.illegalargumentException
شرح هذا الاستثناء هو "خطأ المعلمة للطريقة" ، مثل القيم الثلاث في الطريقة G.SetColor (int red ، int green ، int blue). إذا كان هناك أكثر من 255 ، فسيحدث هذا الاستثناء أيضًا. لذلك ، بمجرد العثور على هذا الاستثناء ، فإن ما نحتاج إلى فعله هو التحقق بسرعة مما إذا كان هناك خطأ في المعلمة التي تمر في مكالمة الطريقة.
6. java.lang.illegalaccessexception
شرح هذا الاستثناء هو "لا يوجد إذن وصول". سيحدث هذا الاستثناء عندما يريد التطبيق استدعاء الفصل ، لكن الطريقة الحالية لا تحتوي على أذونات الوصول إلى الفصل. عند استخدام الحزمة في البرنامج ، يجب عليك الانتباه إلى هذا الاستثناء والاستثناء وجافا
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!