تقنية

encode في بايثون: هل النجاح يثبت صحة errors؟

الاسم غير مسجل؛ abc تترمز بنجاح في الوضع العادي.
نجاح الترميز.

نجاح encode لا يثبت صحة اسم errors. [1]

الخلاصة السريعة

قد ينجح الترميز قبل الرجوع إلى معالج الأخطاء. [1]

  • نجاح encode لا يثبت صحة اسم errors. [1]
  • يُؤجل فحص errors حتى خطأ الترميز، إلا في وضع التطوير أو بناء التصحيح؛ فيهما يُفحص مبكرًا. [1]
  • مثال مؤلف على CPython 3.12.14 بلا وضع تطوير أو بناء تصحيح: e="not_a_handler"؛ t="٣"؛ "abc".encode("ascii",e) تعيد b"abc". [1]
  • t.encode("ascii",e) ترفع LookupError؛ ظهر الاسم غير المسجل عند تعذر الترميز. [1] [2]
  • تحكم: import codecs؛ codecs.lookup_error(e) ترفع LookupError لأن الاسم غير مسجل. [2]

حد النجاح

نجاح encode لا يثبت صحة اسم errors. [1]

وقت الفحص

يُؤجل فحص errors حتى خطأ الترميز، إلا في وضع التطوير أو بناء التصحيح؛ فيهما يُفحص مبكرًا. [1]

اسم غير مسجل

مثال مؤلف على CPython 3.12.14 بلا وضع تطوير أو بناء تصحيح: e="not_a_handler"؛ t="٣"؛ "abc".encode("ascii",e) تعيد b"abc". [1]

"abc".encode("ascii",e) -> b"abc" [1]

ترميز ٣ والبحث عن الاسم يرفعان LookupError.
خطأ والبحث عن الاسم.

ظهور الخطأ والتحكم

t.encode("ascii",e) ترفع LookupError؛ ظهر الاسم غير المسجل عند تعذر الترميز. [1] [2]

t.encode("ascii",e) -> LookupError [1] [2]

تحكم: import codecs؛ codecs.lookup_error(e) ترفع LookupError لأن الاسم غير مسجل. [2]

المراجع

  1. Python — encode
  2. Python — lookup_error

للتوسع: لغات البرمجة.

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