الاستثناءات هي كائنات خاصة يتم إنشاؤها في البرنامج في حالة حدوث أخطاء. في لغة برمجة بايثون ، كل استثناء له نوع معين ، مثل فالويرور ، تيبيرور ، زيروديفيسيونرور ، الخ. من خلال التعامل مع الاستثناءات ، يمكن للمبرمج توفير سيناريوهات مختلفة للسلوك عند حدوث أخطاء.
ومع ذلك ، في بعض الأحيان تحدث أخطاء لم يقدم المبرمج معالجتها. في هذه الحالة ، يحدث نوع استثناء غير معالج. هذا يعني أنه لم يتم التعامل مع الخطأ ويمكن أن يؤدي إلى عواقب غير متوقعة ، مثل إيقاف تشغيل البرنامج أو نتائج غير متوقعة.
هناك عدة طرق للتعامل مع الاستثناءات غير المعالجة. أولا ، من المهم هيكلة الكود بشكل صحيح وتوفير التعامل مع جميع الاستثناءات الممكنة. ثانيا ، يمكنك استخدام محاولة/باستثناء البيانات للقبض والتعامل مع الاستثناءات غير المعالجة. تسمح لك هذه العبارات بتنفيذ كتلة من التعليمات البرمجية والتعامل مع الاستثناءات المحتملة التي لا تؤدي إلى إيقاف تشغيل البرنامج.
على سبيل المثال ، تعترض التعليمة البرمجية التالية نوع الاستثناء غير المعالجة وإخراج رسالة خطأ:
باستثناء استثناء مثل ه:
- طباعة ("حدث خطأ:" ، ه)
- وبالتالي ، فإن المعالجة الصحيحة لأنواع الاستثناءات غير المعالجة تسمح لك بمنع المواقف غير المتوقعة وإنشاء برنامج أكثر استقرارا وموثوقية.
- تعريف نوع استثناء غير معالج
أمثلة على المواقف التي تسبب استثناءات غير معالجة
لماذا تعتبر الاستثناءات غير المعالجة خطرة على البرنامج?
كيفية التعامل مع الاستثناءات غير المعالجة بشكل صحيح?
توصيات لمنع حدوث استثناءات غير معالجة
تعريف نوع استثناء غير معالج
يعد نوع الاستثناء غير المعالج أحد أكثر أنواع الاستثناءات شيوعا التي يواجهها مطورو البرامج. يشير إلى خطأ أو موقف استثنائي لا يمكن التعامل معه في رمز البرنامج.
عند حدوث استثناء من نوع الاستثناء ، فهذا يعني أن شيئا غير متوقع أو غير مرغوب فيه حدث أثناء تنفيذ البرنامج. يمكن أن تكون هذه الاستثناءات مرتبطة بأخطاء الإدخال / الإخراج ، والقسمة على صفر ، والملفات غير الموجودة ، والعديد من المواقف الأخرى.يمكن أن يؤدي نوع الاستثناء غير المعالج إلى إنهاء البرنامج قبل الأوان أو سلوك غير متوقع. لذلك ، من المهم أن يكون لديك آليات معالجة استثناء لمنع تعطل البرنامج المحتمل وتزويد المستخدم بمعلومات الخطأ.
فمن المستحسن استخدام بنيات محاولة الصيد للتعامل مع استثناءات من نوع الاستثناء. تحتوي كتلة المحاولة على التعليمات البرمجية التي يمكن أن تسبب استثناء ، وتحتوي كتلة الصيد على التعليمات البرمجية التي يتم تنفيذها في حالة حدوث استثناء. داخل كتلة الصيد ، يمكنك توفير لمعالجة وإخراج معلومات الخطأ.
مثال على التعامل مع الاستثناءات غير المعالجة يمكن أن يكون الكود التالي:محاولة {
// رمز يمكن أن يسبب استثناء
} قبض (استثناء ه) {
// الكود الذي يتم تنفيذه في حالة الاستثناء
النظام.خارج.برينتلن ("حدث خطأ:" + ه. جيتمسيج ());
}
في حالة حدوث استثناء من نوع الاستثناء ، سينتقل البرنامج إلى كتلة الصيد ، حيث يمكن توفير الإجراءات اللازمة ، مثل عرض رسالة خطأ. وبالتالي ، من الممكن التعامل مع الاستثناء بأمان ومواصلة تنفيذ البرنامج.من المهم أن تتذكر أنه يمكنك أيضا تحديد نوع معين من الاستثناءات في كتلة الصيد من أجل التعامل معها فقط. على سبيل المثال:
محاولة {// رمز يمكن أن يسبب استثناء
} الصيد (فيلنوتفوندكسيبتيون ه) {// التعامل مع استثناء فيلنوتفوندكسيبتيون
النظام.خارج.برينتلن ("الملف غير موجود");} الصيد (إيوكسيبتيون ه) {
// التعامل مع استثناء إيوكسيبتيون
النظام.خارج.برينتلن ("خطأ الإدخال/الإخراج");
}
يتيح لك هذا النهج التعامل مع أنواع مختلفة من الاستثناءات بمزيد من التفصيل واتخاذ التدابير المناسبة للقضاء عليها.
نتيجة لذلك ، يعد نوع الاستثناء غير المعالج نوعا شائعا جدا من الأخطاء التي يمكن أن تحدث في البرنامج. تتيح لك معالجة الاستثناءات المناسبة الاستجابة بأمان للأخطاء ومنع المواقف غير المرغوب فيها ، بالإضافة إلى تزويد المستخدم بمعلومات الخطأ لمزيد من التحليل.
أمثلة على المواقف التي تسبب استثناءات غير معالجة
- يحدث نوع استثناء غير معالج عندما يواجه البرنامج خطأ أو حالة غير متوقعة لا يمكنه التعامل معها. نتيجة لذلك ، يحدث استثناء يوقف تنفيذ البرنامج إذا لم تتم معالجته.
- فيما يلي بعض الأمثلة على المواقف التي يمكن أن تسبب استثناءات غير معالجة:
- القسمة على صفر: محاولة القسمة على صفر ينتج عنها استثناء من النوع"الحسابي". على سبيل المثال:
كثافة العمليات البسط = 10;
قاسم كثافة العمليات = 0;
نتيجة كثافة العمليات = البسط / المقام ؛ / / استثناء غير معالج
الذهاب خارج المصفوفة: محاولة للوصول إلى عنصر خارج الصفيف يولد استثناء من النوع "أرايندكسوتوفبوندسيكسيبتيون". على سبيل المثال:
تجاوز نوع البيانات الرقمية: عند إجراء العمليات الحسابية ، قد يحدث تجاوز من نوع البيانات الرقمية ، الأمر الذي سيؤدي إلى استثناء من نوع "حسابيكسيبتيون". على سبيل المثال:
تنسيق سلسلة غير صالح: عند محاولة تحويل سلسلة إلى رقم أو نوع بيانات آخر باستخدام طرق مثل" بارسينت () "أو" بارسيدوبل () "، قد يحدث استثناء نوع" نومبرفورماتكسيبتيون " إذا كانت السلسلة تنسيق غير صحيح. على سبيل المثال:
سلسلة شارع = "اي بي سي";
عدد الباحث = عدد صحيح.بارسينت (شارع) ؛ / / استثناء غير معالج
في جميع هذه الحالات ، من الضروري توفير معالجة الاستثناء حتى لا يتعطل البرنامج مع وجود خطأ ولديه الفرصة لمواصلة تنفيذه أو إبلاغ المستخدمين بالمشكلات التي نشأت.