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

الصفحات

استثناءات بايثون Les exceptions python



أحيانا يكون إجراء عمليات معينة في الرياضيات مستحيلا ، مثل القسمة على الصفر. تعتقد بايثون ، على سبيل المثال ، أن هذه المعرفة واضحة وإذا طلبت منها قسمة رقم على صفر ، فلن تولد نفسها لإكليلك .


>>> 6/0

Traceback ( most recent call last ) :

  File " < stdin > ", line 1 , in <module >

Zero Division Error : integer division or modulo by zero

نلاحظ أولا وقبل كل شيء أن الثعبان يفطم بالتأكيد ولكنه عادل. يخبرنا لماذا ليس سعيدا: Zero Division Error .

هذا المثال غير ذي صلة ولكن من الممكن تماما استخدام متغير كمقام وفي ذلك الوقت كيف يمكن تجنب هذا الخطأ؟

يتمثل أحد الحلول في التحقق من قيمة المتغير وإذا كانت تساوي 0 ، فإننا نلغي كل شيء .

حل آخر هو توقع أنه سيكون من الممكن أن يكون هناك خطأ وفي حالة الخطأ تقديم تعليمات محددة .

حاول باستثناء Try except

try تعني "المحاولة" باللغة الإنجليزية ، تتيح لك هذه الكلمة الرئيسية تجربة إجراء ما وإذا فشل الإجراء ، يمكنك إعطائه تعليمات أخرى في  كتلة استثناء .

>>> w = 0

>>> m = 5

>>> try :

. . .     m/w

. . .     print( "  erreur ")

. . . except :

...     print ( " il y a une Erreur " )

. . .

Il y a une Erreur

فلماذا تستخدم المحاولة ، أخيرا لا نهتم إذا كان هناك خطأ ؟

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

الأخطاء المستهدفة Cibler les erreurs

يستجيب بناء الجملة الموضح أعلاه لأي نوع من الأخطاء ، ولكن من الممكن تحسين معالجة الأخطاء.

على سبيل المثال ، ماذا يحدث إذا قسمنا رقما على أحرف ؟

>>> 7/ " mimouni "

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: unsupported operand type(s) for /: 'int' and 'str'

نلاحظ أن python تظهر لنا خطأ ولكنه يختلف عن الخطأ الناجم عن القسمة على 0. الخطأ هنا هو تايب وورك TypeError . .

من الممكن في Python تنفيذ العبارات اعتمادا على نوع الخطأ. على سبيل المثال ، إذا كانت القيمة 0 ، فنحن نرغب في عرض رسالة وإذا كان المقام نصا ، نود أن نكون قادرين على عرض رسالة أخرى للمستخدم.

>>> v = 0

>>> w = 5

>>> try:

...     w/v

...     print("Ok pas erreur")

... except TypeError:

...     print("Merci d'utiliser des chiffres")

... except ZeroDivisionError:

...     print("Merci de ne pas utiliser le 0")

...

Merci de ne pas utiliser le 0

et dans le cas où la variable vaut " olivier ":

>>> v = "mimouni"

>>> w = 5

>>> try:

. . .     w/v

. . .     print("Ok pas erreur")

. . . except TypeError:

. . .     print( "il faut utiliser des chiffres " )

. . . except Zero Division Error:

. . .     print( " il ne faut pas utiliser le 0 " )

. . .

Il faut utiliser des chiffres

أخيرا Finally

نستخدم الكلمة الأساسية الأخيرة  لتنفيذ البيانات بغض النظر عن الأخطاء التي تم إنشاؤها أم لا (وحتى إذا كان هناك عائد). في جميع الحالات ، سيتم تنفيذ التعليمات الموضوعة في النهاية.

try :

    pass

except :

    pass

finally :

    print( " Exécution " )



الصفحة الرئيسية >> تفاهمات قائمة بايثون Les compréhensions de liste python      

تعليقات