قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
البرمجة بلغة البايثون ، معالجة الاستثناء :
حتى الآن، والحصول على خطأ ، أو استثناء ، في برنامج البايثون يعني أن البرنامج بأكمله سوف يتحطم . أنت لا تريد لهذا أن يحدث في برامج في العالم الحقيقي . بدلا من ذلك ، أنت تريد يكشف البرنامج عن الأخطاء ، والتعامل معها، ومن ثم الاستمرار في تشغيل .
على سبيل المثال ، في البرنامج التالي الذي يحتوي على الخطأ “divide-byzero” . افتح نافذة جديدة فى محرر الملفات وإدخل الكود التالي، واحفظه باسم zeroDivide.py:
لقد تم تعريف دالة تسمى spam ، وإعطائها بارامتر ، ثم بعد ذلك طباعة قيمة هذه الالة مع بارامترات مختلفة لرؤية ما يحدث .
فيما يلى الخرج الذى تحصل عليه عند تشغيل الكود السابق :
الخطأ ZeroDivisionError يحدث كلما حاولت قسمة عدد على صفر. من رقم السطر الذى يرد في رسالة الخطأ ، تعرف أن العبارة return فى الدالة spam() هو المسبب للخطأ .
يمكن التعامل مع الأخطاء بعبارات try و except . يتم وضع الكود الذى يحتمل أن يكون خطأ في بيان عبارة try . يتحرك تنفيذ البرنامج إلى بداية بيان عبارة try التالية إذا حدث خطأ .
يمكنك وضع كود divide-by-zero السابق في بيان عبارة try ، ويكون لديها بيان except للتعامل مع ما يحدث عندما يحدث هذا الخطأ.
عندما يتسبب بيان try فى خطأ ، فإن تنفيذ البرنامج يتحرك على الفور إلى الكود فى بيان except . بعد تشغيل هذا الكود ، فإن التنفيذ يستمر كما هو المعتاد .
فيما يلى خرج البرنامج السابق .
لاحظ أن أية أخطاء تحدث فى دعوات الدالة فى كتلة try سوف تظهر أيضا . اعتبر البرنامج التالى ، والذى لديه دعوات للدالة spam() فى كتلة try .
عند تشغيل هذا البرنامج فإن الخرج سوف يكون بالشكل التالى :
السبب فى أن print(spam(1)) لن يتم تنفيذها على الإطلاق هو أنه بمجرد يقفز التنفيذ إلى كود عبارة except ، فإنه لا يعود إلى بيان try . بدلا من ذلك ، فهو فقط يستمر فى التحرك لأسفل فى طريقه المعتاد .
******************
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:18 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)