القائمة الرئيسية

الصفحات

أخبار الاخبار

الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون


الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
الفصل العشر:التعامل مع الاخطاء اساسيات بايثون في هذا الفصل ستجد شرح لاساسيات التعامل مع الاخطاء وستجد في الفصل العاشر طريقة التعامل مع الاخطاء في اساسيات البايثون
والتعامل مع لغة البايثون يحتاج الي البدء بتعلم الاسيسيات للتعامل مع اللغة باحترافية وطريقة مسك الاخطاء مهمة لكل برنامج تصنعة سواء كان للويب او علي الحاسبات او علي الموبايل فستجد الكثير من طرق المعاملة مع الاخطاء وذلك تجنبا لظهور خطأ اثناء تشغيل المشروع علي جهاز اخر ويوجد كثير من انواع الاخطاء منها اساسيات ومنها مهمة وفي الحالتين ستجدان تفادي الاخطاء في التطبيق الذي تصنعة اكثر فاعلية واكثر استفادة

الأخطاء الإملائية
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
و هي الأخطاء الكتابية في الشفرة كنسيان حرف أو كتابة عبارة مجهولة لا تحتويها اللغة مثلا عوض أن نكتب else كتبنا elqe أو نسيان النقطتين ':' بعد عبارة if ... إلخ

وهذا النوع من الأخطاء الأسهل في الإكتشاف لأنك بمجرد أن تنفذ البرنامج سيحدد لك المفسر مكان الخطأ فتقوم بتصليحه.

الأخطاء من نوع Run Time
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
يطلق على الخطأ الذي يحدث أثناء تشغيل البرنامج Run Time Error. هذا النوع من الأخطاء يحدث عندما يحاول البرنامج أن يقوم بعمل لم يصمم البرنامج من أجله. مثلا أن يقوم البرنامج بعملية غير مقبولة Illegal Operation كأن يقوم بعملية جمع بين متغير رقمي و متغير نصي، و مثل هذه الحالات تحدث أخطاء Run Time.

إذا لم توجد شفرة معينة داخل البرنامج لمعالجة الخطأ سوف يتوقف و عندئذ ستحتاج لإعادة تشغيلة مرة أخرى. و في مثل هذه الحالات غالبا ما يحدث فقد في البيانات التي يديرها البرنامج لذلك يفضل البحث عن هذه الأخطاء أيًّا كان موضعها و إزالتها.
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
مثال لخطأ شهير

هذا السكربت يحاول طبع حاصل قسمة العدد 1 على 0 :

#!/usr/bin/python
print 1 / 0
هذا هو رد بايثون عند تنفيذ السكربت :

Traceback (most recent call last):
  File "C:\Documents and Settings\MOHAMED\Bureau\aa.py", line 2, in <module>
    print 1 / 0
ZeroDivisionError: integer division or modulo by zero
في الرياضيات لا يمكنك قسمة عدد على صفر لهذا توقف البرنامج لحدوث خطأ.

لاحظ السطر التالي :

ZeroDivisionError: integer division or modulo by zero
ZeroDivisionError : هو إسم الخطأ.

integer division or modulo by zero : رسالة الخطأ.

العبارة try - except
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
يمكنك إستخدام العبارة try -except لمعالجة الأخطاء في شفرتك. منطق هذه العبارة بسيط للغاية، فيمكنك أن تجرب try جزء من الشفرة، فإذا حدث أي إستثناء في الشفرة، ينتقل البرنامج إلى السطور التالية ل except و يقوم بتنفيذ هذه السطور.
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
معالجة الخطأ : ZeroDivisionError

#!/usr/bin/python
try :
    print 1 / 0
except ZeroDivisionError, e :
    print e
- في السطر الثاني كتبنا العبارة try وبعدها وضعنا النقطتين ':'.

- في Block الخاص ب try وظعنا الكود print 1 / 0 .

- في السطر الرابع كتبنا العبارة except يليها إسم الخطأ (ZeroDivisionError) يليه الفاصلة ',' يليها المتغير e والذي تحفظ فيه رسالة الخطأ يليه النقطتين ':' .

- في Block الخاص ب except وضعنا الكود print e لطباعة رسالة الخطأ.

عند تنفيذ السكربت لا يتوقف البرنامج بل يطبع لنا رسالة الخطأ :

>>> ================================ RESTART ================================
>>>
integer division or modulo by zero
>>>
الأن نستطيع تحديد الصورة العامة للعبارة try - except :
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
try :
#-----بداية البلوك-----#
          هنا نضع الأوامر التي ستنفذ في الحالة العادية أي إذا لم يحدث الخطأ
#-----نهاية البلوك-----#
except :
#-----بداية البلوك-----#
          هنا نضع الأوامر التي ستنفذ عند حدوث خلل في التنفيذ
#-----نهاية البلوك-----#
في بعض الأحيان قد لا تعرف إسم الخطأ لذا ما عليك إلا وضع العبارة Exception بدل إسم الخطأ و المفسر سيحدد الرسالة المناسبة. كالتالي :

#!/usr/bin/python
try :
    print 1 / 0
except Exception, e :
    print e
في التعديل التالي طبعنا النص ": Error" قبل طباعة رسالة الخطأ.

#!/usr/bin/python
try :
    print 1 / 0
except Exception, e :
    print "Error :", e
الناتج سيكون كالتالي :

>>> ================================ RESTART ================================
>>>
Error : integer division or modulo by zero
>>>
رسائل الخطأ في بايثون كلها باللغة الإنجليزية فإذا كنت تبرمج برنامج عربي فعليك توقع نوع أو إسم الخطأ و كتابة رسالة تناسبه، كالتالي :
الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
#!/usr/bin/python
# -*- coding: cp1256 -*-
try :
    print 1 / 0
except :
    print "لا يمكنك القسمة على 0"
هذا هو الناتج عند تنفيذ السكربت :

>>> ================================ RESTART ================================
>>>
لا يمكنك القسمة على 0
>>> الفصل العاشر: التعامل مع الاخطاء اساسيات بايثون
اليوم تعاملنا مع خطأ واحد هو ZeroDivisionError، في الدرس القادم سأعرفكم على بعض الأخطاء الأخرى، ثم أريكم كيفية إستخدام العبارة else مع العبارة try - except، كما ستتعرفون على العبارة try - except - finally، كما سأستعمل بعض السكربتات البسيطة لتسهيل الفهم.


هل اعجبك الموضوع :

تعليقات

src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

التنقل السريع