تقنية

suppress في بايثون: أي خطأ يبقى من مجموعة الاستثناءات؟

ValueError وTypeError قبل suppress(ValueError)؛ يبقى TypeError.
المطابق يُخفى.

suppress(ValueError) يزيل الأخطاء المطابقة من المجموعة ويعيد رفع الباقي في مجموعة جديدة. [1]

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

إخفاء نوع واحد لا يخفي المجموعة كلها. [1]

  • suppress(ValueError) يزيل الأخطاء المطابقة من المجموعة ويعيد رفع الباقي في مجموعة جديدة. [1]
  • دعم suppress لمجموعات الاستثناءات أُضيف في بايثون 3.12. [1]
  • مثال مؤلف شُغّل على CPython 3.12.14 مع from contextlib import suppress: g=ExceptionGroup("batch",[ValueError("v"),TypeError("t")])؛ تضم المجموعة خطأين. [1] [2]
  • عند raise g داخل with suppress(ValueError)، يصل TypeError("t") وحده إلى except ExceptionGroup. [1] [2]
  • المجموعة الأصلية g تحتفظ بالخطأين؛ الإخفاء لا يمحو أصل المشكلة، لذا اختر الأخطاء بعناية. [1] [2]

إخفاء انتقائي

suppress(ValueError) يزيل الأخطاء المطابقة من المجموعة ويعيد رفع الباقي في مجموعة جديدة. [1]

الإصدار المطلوب

دعم suppress لمجموعات الاستثناءات أُضيف في بايثون 3.12. [1]

خطآن للمثال

مثال مؤلف شُغّل على CPython 3.12.14 مع from contextlib import suppress: g=ExceptionGroup("batch",[ValueError("v"),TypeError("t")])؛ تضم المجموعة خطأين. [1] [2]

original: ValueError("v"), TypeError("t") [2]

الأصل يحتفظ بـv وt؛ المجموعة الجديدة تضم t.
الباقي مجموعة جديدة.

الخطأ المتبقي

عند raise g داخل with suppress(ValueError)، يصل TypeError("t") وحده إلى except ExceptionGroup. [1] [2]

remaining: TypeError("t") [1] [2]

المجموعة الأصلية g تحتفظ بالخطأين؛ الإخفاء لا يمحو أصل المشكلة، لذا اختر الأخطاء بعناية. [1] [2]

المراجع

  1. Python — suppress
  2. Python — ExceptionGroup

للتوسع: توافق إصدار النموذج.

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