أنواع الأخطاء في بايثون

0
في بايثون يوجد نوعان من الاخطاء: أخطاء في بناء الجملة (Syntax errors) و الاستثناءات (Exceptions) وما سنقوم به في هذه التدوينة هو شرح هاذين الخطأين و في المرة القادمة سنقوم بتعلم كيفية التعامل معهم.

أخطاء في بناء الجملة (Syntax errors)

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


 
>>> while True
  File "", line 1, in ?
    while True 
             ^
SyntaxError: invalid syntax
في المثال السابق نلاحظ أن السهم الصغير يتواجد تحت الحرف e الخاص True حيث أن المشكلة بدأت مباشرة بعد الحرف e وطبعا في مثالنا هذا الخطأ بسبب عدم وجود النقطتين : بعد حلقة while

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

الاستثناءات Exceptions

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

مثال عن أخطاء الاستثناءات
 
>>> 10 * (1/0)#لا يمكن القسمة على 0
Traceback (most recent call last):
  File "", line 1, in ?
ZeroDivisionError: integer division or modulo by zero
>>> 4 + spam*3# لا يمكن جمع عدد مع قيمة غير معرفة
Traceback (most recent call last):
  File "", line 1, in ?
NameError: name 'spam' is not defined
>>> '2' + 2# لا يمكن جمع عدد مع حروف
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects

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

لا يوجد تعليقات

أضف تعليق