الوحدة cgitb
في بايثون
تقدم وحدة cgitb
أداة خاصة للتعامل مع الاستثناءات في سكربتات بايثون. (قد يكون اسم الوحدة مضلّلًا. صمّمت هذه الوحدة في المقام الأوّل لعرض معلومات الأخطاء الخاصّة بسكربتات CGI بصيغة HTML، ولكنّها أصبحت تعرض المعلومات كنصوص صرفة في وقت لاحق).
في حال حدوث استثناء لم تلتقطه بايثون، تعرض الوحدة تقريرًا مفصّلًا ومنسّقًا، ويتضمّن هذا التقرير الجزء المسؤول عن حدوث الخطأ في الشيفرة المصدرية، إضافة إلى قيم الوسائط والمتغيرات المحلية الخاصّة بالدالة الحالية. يمكن الاستفادة من هذا التقرير في تنقيح الشيفرة المصدرية ومعالجة الأخطاء. ويمكن حفظ معلومات التقرير في ملف عوضًا عن إرسالها إلى متصفّح الويب.
يمكن إضافة السطرين التاليين إلى بداية سكربت CGI لتفعيل هذه الوحدة:
import cgitb
cgitb.enable()
يمكن الاستفادة من الخيارات التي تقدّمها الدالة enable()
في تحديد ما إذا كان التقرير سيُعرض على متصفّح الويب أو سيحفظ ملفّ منفصل لتحليله في وقت لاحق.
دوال الوحدة
cgitb.enable()
يؤدّي استدعاء هذه الدالة إلى تولّي وحدة cgitb
مسؤولية معالجة الاستثناءات عوضًا عن أداة المعالجة الافتراضية في مفسّر بايثون، وذلك بتعيين قيمة للدالة sys.excepthook()
.
cgitb.text()
تتعامل هذه الدالة مع الاستثناء الموصوف في المعاملات، وتنسّق رسالة الخطأ على هيئة نصٍّ صرف plain text وتعيد النتيجة كسلسلة نصية.
cgitb.html()
تتعامل هذه الدالة مع الاستثناء الموصوف في المعاملات، وتنسّق رسالة الخطأ بصيغة HTML وتعيد النتيجة كسلسلة نصية.
cgitb.handler()
تتعامل هذه الدالة مع استثناء معيّن باستخدام الإعدادات الافتراضية (عرض التقرير في متصفّح الويب، ولكن عدم حفظه في ملف منفصل).