معالجة الاستثناء :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: منتدى البرمجة بلغة البايثون Python
صفحة 1 من اصل 1
معالجة الاستثناء :
معالجة الاستثناء :
حتى الآن، والحصول على خطأ ، أو استثناء ، في برنامج البايثون يعني أن البرنامج بأكمله سوف يتحطم . أنت لا تريد لهذا أن يحدث في برامج في العالم الحقيقي . بدلا من ذلك ، أنت تريد يكشف البرنامج عن الأخطاء ، والتعامل معها، ومن ثم الاستمرار في تشغيل .
على سبيل المثال ، في البرنامج التالي الذي يحتوي على الخطأ “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 . بدلا من ذلك ، فهو فقط يستمر فى التحرك لأسفل فى طريقه المعتاد .
******************
برنامج قصير : تخمين العدد :
حتى الآن، والحصول على خطأ ، أو استثناء ، في برنامج البايثون يعني أن البرنامج بأكمله سوف يتحطم . أنت لا تريد لهذا أن يحدث في برامج في العالم الحقيقي . بدلا من ذلك ، أنت تريد يكشف البرنامج عن الأخطاء ، والتعامل معها، ومن ثم الاستمرار في تشغيل .
على سبيل المثال ، في البرنامج التالي الذي يحتوي على الخطأ “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 . بدلا من ذلك ، فهو فقط يستمر فى التحرك لأسفل فى طريقه المعتاد .
******************
برنامج قصير : تخمين العدد :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: منتدى البرمجة بلغة البايثون Python
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى