جاري التحميل...

رموز أخطاء بايثون

رموز أخطاء بايثون هي مجموعة من الاستثناءات والإشارات التي ترفعها لغة بايثون عند مواجهة البرنامج لمواقف غير متوقعة أثناء التنفيذ. فهم هذه الرموز مهم جدًا للمطورين المتقدمين لأنه يسمح بتصحيح الأخطاء بدقة، وإدارة الاستثناءات بشكل صحيح، وتصميم برمجيات قابلة للصيانة. تظهر الأخطاء عند وجود انتهاك لقواعد اللغة، أو عدم تطابق أنواع البيانات، أو فقدان الموارد، أو أخطاء منطقية. من الأمثلة الشائعة على الأخطاء المضمنة: SyntaxError، TypeError، و KeyError، بالإضافة إلى الاستثناءات المخصصة التي يحددها المطورون للتعامل مع الحالات الخاصة بالتطبيق. من خلال دراسة رموز أخطاء بايثون، يمكن للمطورين تحديد سبب فشل البرنامج بسرعة، وتطبيق استراتيجيات إدارة استثناءات مناسبة باستخدام كتل try/except، وتسجيل معلومات تشخيصية مفيدة لأنظمة الإنتاج. هذه المعرفة ضرورية في تطوير البرمجيات الخلفية، حيث يمكن للأخطاء غير المعالجة أن تؤدي إلى توقف الخدمة، أو فقدان البيانات، أو ثغرات أمنية. في هذا المرجع، سيتعلم القارئ جميع الأخطاء الشائعة، وأسباب ظهورها، وتقنيات تصحيح الأخطاء، وأفضل الممارسات لإدارة الاستثناءات وإنشاء تطبيقات قوية ومستقرة.

تخيل خدمة خلفية تقرأ مدخلات المستخدم، وتتعامل مع الملفات، وتتواصل مع قاعدة البيانات. يمكن أن تظهر أخطاء مثل FileNotFoundError، ValueError، أو ZeroDivisionError أثناء التنفيذ. يوفر التعامل الصحيح مع الأخطاء استمرار عمل التطبيق بسلاسة حتى في الحالات غير المتوقعة. يمكن استخدام كتلة try لتغليف العمليات التي قد تفشل، في حين تلتقط كتل except الاستثناءات المحددة للتعامل معها بشكل مناسب. باستخدام عدة كتل except، يمكن للمطورين تخصيص الاستجابة لكل نوع خطأ، وتسجيل معلومات التصحيح، وتوفير آليات بديلة عند الحاجة. بالإضافة إلى ذلك، تضمن كتل finally تنفيذ العمليات الحرجة مثل إغلاق الملفات أو اتصالات قاعدة البيانات مهما حدث. هذا النمط لا يمنع الأعطال فحسب، بل يعزز أيضًا موثوقية وصيانة الأنظمة. تعتبر هذه الممارسات أساسية في الأنظمة الخلفية الواقعية، حيث يؤثر التعامل الصحيح مع الأخطاء مباشرة على استقرار النظام وأدائه وثقة المستخدمين.

Example

python
PYTHON Code
def process_data():
try:
# NameError: محاولة استخدام متغير غير معرف
print(undefined_variable)

# ZeroDivisionError: قسمة على صفر
result = 10 / 0

# ValueError: تحويل غير صالح
number = int("abc")

# FileNotFoundError: محاولة فتح ملف غير موجود
with open("non_existent_file.txt", "r") as f:
content = f.read()

# AttributeError: استدعاء طريقة غير موجودة
[].appendx(1)

except NameError as ne:
print(f"تم التقاط NameError: {ne}")
except ZeroDivisionError as zde:
print(f"تم التقاط ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"تم التقاط ValueError: {ve}")
except FileNotFoundError as fe:
print(f"تم التقاط FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"تم التقاط AttributeError: {ae}")
except Exception as e:
print(f"تم التقاط استثناء عام: {e}")
finally:
print("تنفيذ عمليات التنظيف إذا لزم الأمر.")

process_data()

📊 Comprehensive Reference

Error Description When It Occurs Example Notes
SyntaxError خطأ في بناء الجملة كتابة كود بايثون غير صالح eval('x === 2') يحدث أثناء التحويل البرمجي
IndentationError خطأ في المسافة البادئة عدم تطابق المسافات البادئة if True:\nprint("Hi") فرع من SyntaxError
TabError خلط بين التابات والمسافات خلط علامات التبويب والمسافات <tab> <space> print("Hi") نادراً إذا تم الحفاظ على التنسيق
NameError متغير أو دالة غير معرفة استخدام متغير غير معرف print(x) يتم اكتشافه غالباً مبكراً
TypeError عملية على نوع خاطئ جمع int + str 5 + "5" شائع في البرمجة الديناميكية
ValueError قيمة غير صحيحة تحويل سلسلة غير صالحة إلى int int("abc") يجب التحقق من صحة المدخلات
IndexError فهرس قائمة غير صالح الوصول إلى عنصر خارج النطاق lst = []; lst[1] التحقق من طول القائمة قبل الفهرسة
KeyError مفتاح قاموس غير موجود الوصول إلى مفتاح غير موجود d = {}; d['x'] استخدام dict.get() لتجنب الخطأ
AttributeError استدعاء خاصية غير موجودة الكائن لا يحتوي على الخاصية [].appendx(1) أخطاء شائعة بسبب أخطاء كتابة الاسم
ZeroDivisionError قسمة على صفر 10 / 0 التحقق من المقسوم عليه قبل القسمة
ImportError الوحدة غير موجودة import non_module التأكد من وجود الوحدة
ModuleNotFoundError الوحدة غير موجودة import non_existent_module فرع من ImportError
FileNotFoundError ملف غير موجود فتح ملف غير موجود open("nofile.txt") التحقق من مسار الملف
IsADirectoryError المسار ملف بينما توقع مجلد open("folder") خاص بأنظمة التشغيل
NotADirectoryError المسار مجلد بينما توقع ملف os.listdir("file.txt") خاص بأنظمة التشغيل
PermissionError نقص صلاحيات محاولة الوصول لملف بدون إذن open("/root/file") التحقق من صلاحيات المستخدم
OSError خطأ نظام التشغيل أخطاء عامة في النظام os.remove("/root/file") فئة أساسية للعديد من الأخطاء
OverflowError الرقم أكبر من الحد نتيجة حسابية كبيرة 2.0**10000 نادراً في بايثون 3
RecursionError تجاوز عمق الاستدعاء استدعاء دالة بشكل متكرر def f(): f(); f() يمكن تعديل الحد باستخدام sys.setrecursionlimit()
MemoryError نفاد الذاكرة محاولة تخصيص ذاكرة كبيرة a = 'a' * 10**10 يعتمد على حجم النظام
StopIteration نفاد العناصر في iterator استخدام next على iterator فارغ next(iter([])) يتم استخدامه في iterators مخصصة
AssertionError فشل التحقق assert False لتأكيد شروط معينة
FloatingPointError خطأ حسابي عشري عمليات FP غير صالحة numpy.seterr(all='raise') نادراً، عادة مع numpy
UnicodeError فشل الترميز/فك الترميز "ü".encode("ascii") التحقق من الترميزات
UnicodeDecodeError فشل فك الترميز b'\xff'.decode('utf-8') شائع عند قراءة الملفات
UnicodeEncodeError فشل الترميز "ü".encode("ascii") التحقق من الترميزات
RecursionWarning تحذير الاستدعاء العميق import warnings عادةً ليس خطأً حرجًا
DeprecationWarning استخدام ميزة قديمة warnings.warn("deprecated") يساعد في الترقية
RuntimeWarning تحذير وقت التشغيل import warnings مشكلات محتملة أثناء التنفيذ
FutureWarning ميزة ستتغير warnings.warn("future") التحضير للإصدارات القادمة
UserWarning تحذير عام warnings.warn("user") رسائل تحذير مخصصة
PendingDeprecationWarning ميزة ستصبح قديمة warnings.warn("pending") نادراً ما يُستخدم
ResourceWarning المورد لم يتم تحريره open("file") بايثون 3+
ArithmeticError فشل حسابي int("x")/0 فئة أساسية للأخطاء الحسابية
BufferError خطأ في الذاكرة المؤقتة memoryview(b'').release() نادراً
ConnectionError فشل الاتصال بالشبكة requests.get("bad_url") فئة أساسية لأخطاء الشبكة
BrokenPipeError كتابة إلى pipe مغلق os.write(fd, b'data') خاص بأنظمة Unix
ChildProcessError فشل عملية فرعية os.waitpid(-1) نادراً
EOFError نهاية ملف غير متوقعة input() EOF يحدث عند مدخلات فارغة
EnvironmentError مشكلة بيئية خطأ على مستوى النظام فئة أساسية لـ OSError
GeneratorExit إغلاق generator gen.close() يحدث داخل generator
IOError فشل إدخال/إخراج open("/root/file") دمج مع OSError في بايثون 3
InterruptedError تم مقاطعة عملية النظام os.read(fd, 0) خاص بأنظمة Unix
LookupError خطأ في البحث d['x'] فئة أساسية
ReferenceError مرجع ضعيف غير صالح import weakref نادراً
RuntimeError خطأ وقت التشغيل raise RuntimeError() عام
StopAsyncIteration انتهاء async iterator async for بايثون 3.5+
SyntaxWarning تحذير بناء الجملة warnings.warn("syntax") لا يوقف البرنامج
SystemError خطأ داخلي في بايثون sys._getframe(0) نادراً
SystemExit استدعاء خروج البرنامج sys.exit() يخرج من البرنامج
TabError خلط بين tabs و spaces <tab><space> التأكد من التنسيق
TimeoutError انتهاء مهلة العملية socket.settimeout() عمليات الشبكة

📊 Complete Properties Reference

Error Exception Type Default Behavior Description Compatibility
SyntaxError Exception يتوقف البرنامج خطأ في بناء الجملة جميع إصدارات بايثون
IndentationError SyntaxError يتوقف البرنامج خطأ في المسافات البادئة جميع الإصدارات
TabError IndentationError يتوقف البرنامج خلط بين علامات التبويب والمسافات جميع الإصدارات
NameError Exception يتوقف البرنامج متغير أو دالة غير معرفة جميع الإصدارات
TypeError Exception يتوقف البرنامج عملية على نوع خاطئ جميع الإصدارات
ValueError Exception يتوقف البرنامج قيمة غير صحيحة للعملية جميع الإصدارات
IndexError Exception يتوقف البرنامج فهرس غير صالح جميع الإصدارات
KeyError Exception يتوقف البرنامج مفتاح قاموس غير موجود جميع الإصدارات
AttributeError Exception يتوقف البرنامج استدعاء خاصية غير موجودة جميع الإصدارات
ZeroDivisionError ArithmeticError يتوقف البرنامج قسمة على صفر جميع الإصدارات
ImportError Exception يتوقف البرنامج الوحدة غير موجودة جميع الإصدارات
ModuleNotFoundError ImportError يتوقف البرنامج الوحدة غير موجودة بايثون 3.6+
FileNotFoundError OSError يتوقف البرنامج ملف غير موجود بايثون 3+
IsADirectoryError OSError يتوقف البرنامج المسار ملف بينما توقع مجلد بايثون 3+
NotADirectoryError OSError يتوقف البرنامج المسار مجلد بينما توقع ملف بايثون 3+
PermissionError OSError يتوقف البرنامج نقص صلاحيات بايثون 3+
OSError Exception يتوقف البرنامج أخطاء نظام التشغيل جميع الإصدارات
OverflowError ArithmeticError يتوقف البرنامج الرقم أكبر من الحد جميع الإصدارات
RecursionError RuntimeError يتوقف البرنامج تجاوز عمق الاستدعاء بايثون 3+
MemoryError Exception يتوقف البرنامج نفاد الذاكرة جميع الإصدارات
StopIteration Exception يتوقف البرنامج نفاد العناصر في iterator جميع الإصدارات
AssertionError Exception يتوقف البرنامج فشل التحقق جميع الإصدارات
FloatingPointError ArithmeticError يتوقف البرنامج خطأ حسابي عشري جميع الإصدارات
UnicodeError ValueError يتوقف البرنامج فشل الترميز/فك الترميز جميع الإصدارات
UnicodeDecodeError UnicodeError يتوقف البرنامج فشل فك الترميز جميع الإصدارات
UnicodeEncodeError UnicodeError يتوقف البرنامج فشل الترميز جميع الإصدارات
RecursionWarning Warning يستمر البرنامج تحذير الاستدعاء العميق جميع الإصدارات
DeprecationWarning Warning يستمر البرنامج استخدام ميزة قديمة جميع الإصدارات
RuntimeWarning Warning يستمر البرنامج تحذير وقت التشغيل جميع الإصدارات
FutureWarning Warning يستمر البرنامج ميزة ستتغير جميع الإصدارات
UserWarning Warning يستمر البرنامج تحذير عام جميع الإصدارات
PendingDeprecationWarning Warning يستمر البرنامج ميزة ستصبح قديمة جميع الإصدارات
ResourceWarning Warning يستمر البرنامج المورد لم يتم تحريره بايثون 3+
ArithmeticError Exception يتوقف البرنامج فشل حسابي جميع الإصدارات
BufferError Exception يتوقف البرنامج خطأ في الذاكرة المؤقتة جميع الإصدارات
ConnectionError OSError يتوقف البرنامج فشل الاتصال بالشبكة بايثون 3+
BrokenPipeError OSError يتوقف البرنامج كتابة إلى pipe مغلق بايثون 3+
ChildProcessError OSError يتوقف البرنامج فشل عملية فرعية بايثون 3+
EOFError Exception يتوقف البرنامج نهاية ملف غير متوقعة جميع الإصدارات
EnvironmentError OSError يتوقف البرنامج مشكلة بيئية بايثون 3+
GeneratorExit Exception يتوقف البرنامج إغلاق generator جميع الإصدارات
IOError OSError يتوقف البرنامج فشل إدخال/إخراج بايثون 3+
InterruptedError OSError يتوقف البرنامج تم مقاطعة عملية النظام بايثون 3+
LookupError Exception يتوقف البرنامج خطأ في البحث جميع الإصدارات
ReferenceError Exception يتوقف البرنامج مرجع ضعيف غير صالح بايثون 3+
RuntimeError Exception يتوقف البرنامج خطأ وقت التشغيل جميع الإصدارات
StopAsyncIteration Exception يتوقف البرنامج انتهاء async iterator بايثون 3.5+
SyntaxWarning Warning يستمر البرنامج تحذير بناء الجملة جميع الإصدارات
SystemError Exception يتوقف البرنامج خطأ داخلي في بايثون جميع الإصدارات
SystemExit Exception خروج البرنامج استدعاء sys.exit() جميع الإصدارات
TimeoutError OSError يتوقف البرنامج انتهاء مهلة العملية بايثون 3+
UnboundLocalError NameError يتوقف البرنامج متغير محلي مستخدم قبل تعيينه بايثون 3+
ZeroDivisionError ArithmeticError يتوقف البرنامج قسمة على صفر جميع الإصدارات

🧠 اختبر معرفتك

جاهز للبدء

Test Your Knowledge

اختبر معرفتك برموز أخطاء بايثون

3
الأسئلة
🎯
70%
للنجاح
♾️
الوقت
🔄
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى