Python معالجة الاستثناءات: حاول، باستثناء، أخيرًا، ارفع
⚡ ملخص ذكي
Python تتيح معالجة الاستثناءات لبرنامجك الاستجابة لأخطاء وقت التشغيل بدلاً من التعطل. ستتعلم هنا كيفية عمل try و except و finally و raise، ولماذا تُعدّ الاستثناءات مهمة، وأنواع الأخطاء المضمنة الشائعة التي ستواجهها.

ما هو التعامل مع الاستثناءات في Python?
الاستثناء هو الخطأ الذي يحدث أثناء تنفيذ البرنامج. ومع ذلك، أثناء تشغيل البرنامج، Python يُنشئ استثناءً يجب معالجته لتجنب تعطل برنامجك. في Python اللغة، يتم تشغيل الاستثناءات تلقائيًا عند حدوث أخطاء، أو يمكن تشغيلها واعتراضها بواسطة التعليمات البرمجية الخاصة بك.
يشير الاستثناء إلى أنه على الرغم من إمكانية وقوع الحدث، إلا أن هذا النوع من الأحداث يحدث بشكل غير متكرر. عندما لا تكون الطريقة قادرة على معالجة الاستثناء، يتم طرحها إلى وظيفة المتصل الخاصة بها. في النهاية، عندما يتم طرح استثناء من الوظيفة الرئيسية، يتم إنهاء البرنامج فجأة.
أمثلة شائعة للاستثناء
- القسمة على صفر
- الوصول إلى ملف غير موجود.
- إضافة نوعين غير متوافقين
- محاولة الوصول إلى فهرس غير موجود للتسلسل
- إزالة الجدول من خادم قاعدة البيانات المنفصلة.
- سحب مبلغ أكبر من المبلغ المتاح من أجهزة الصراف الآلي
لماذا يجب عليك استخدام الاستثناءات؟
فيما يلي أسباب استخدام الاستثناءات في Python:
- تتيح لك معالجة الاستثناءات فصل كود معالجة الأخطاء عن الكود العادي.
- استثناء هو ملف Python موضوع الذي يمثل خطأ.
- كما هو الحال مع تعليقات التعليمات البرمجية، تساعدك الاستثناءات على تذكير نفسك بما يتوقعه البرنامج.
- يوضح الكود ويعزز إمكانية القراءة.
- يسمح لك بتحفيز العواقب حيث أن معالجة الأخطاء تتم في مكان واحد وبطريقة واحدة.
- الاستثناء هو أسلوب مناسب للتعامل مع رسائل الخطأ.
- In Pythonيمكنك رفع استثناء في البرنامج باستخدام طريقة رفع الاستثناء.
- يساعدك رفع الاستثناء على كسر تنفيذ التعليمات البرمجية الحالي وإرجاع الاستثناء إلى التوقعات حتى تتم معالجته.
- معالجة الاستثناءات للمكونات التي لا يمكنها التعامل معها مباشرة.
قواعد الاستثناءات
فيما يلي بعض القواعد الأساسية Python معالجة الاستثناء:
- يجب أن تكون الاستثناءات كائنات فئة
- بالنسبة لاستثناءات الفئات، يمكنك استخدام عبارة حاول مع عبارة استثناء التي تشير إلى فئة معينة.
- حتى لو كانت العبارة أو التعبير صحيحًا من الناحية النحوية، فقد يظهر خطأ عند محاولة تنفيذه.
- تسمى الأخطاء التي يتم العثور عليها أثناء التنفيذ بالاستثناءات، وهي ليست قاتلة دون قيد أو شرط.
Python آلية معالجة الاستثناءات
يتم إدارة معالجة الاستثناءات من خلال الكلمات الرئيسية الخمس التالية:
- محاولة
- قبض
- أخيرا
- رمي
Python حاول البيان
تتضمن عبارة "محاولة" الكلمة الأساسية "محاولة"، متبوعة بنقطتين (:) ومجموعة من التعليمات البرمجية التي قد تحدث فيها استثناءات. وله جملة واحدة أو أكثر.
أثناء تنفيذ عبارة المحاولة، إذا لم تحدث أي استثناءات، فسيتجاهل المترجم معالجات الاستثناءات الخاصة ببيان المحاولة المحدد.
في حالة حدوث أي استثناء في مجموعة المحاولة، تنتهي صلاحية مجموعة المحاولة وينتقل التحكم في البرنامج إلى معالج الاستثناء المطابق الذي يلي مجموعة المحاولة.
Syntax:
try:
statement(s)
بيان المصيد
تأخذ كتل الالتقاط وسيطة واحدة في كل مرة، وهو نوع الاستثناء الذي من المحتمل أن تلتقطه. قد تتراوح هذه الوسائط من نوع معين من الاستثناءات التي يمكن أن تختلف إلى فئة الاستثناءات الشاملة.
قواعد كتلة الصيد:
- يمكنك تحديد كتلة الالتقاط باستخدام الكلمة الأساسية الجذابة
- يتم وضع معلمة Catch Exception دائمًا بين قوسين
- إنه يمثل دائمًا نوع الاستثناء الذي يمسك بمقابض الكتلة.
- تتم كتابة كود معالجة الاستثناء بين قوسين متعرجين {}.
- يمكنك وضع كتلة التقاط متعددة داخل كتلة محاولة واحدة.
- لا يمكنك استخدام كتلة الالتقاط إلا بعد كتلة المحاولة.
- يجب ترتيب كل كتلة الالتقاط من فئة فرعية إلى فئة فائقة.
على سبيل المثال:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
بيان أخيرا في Python
أخيرًا، يتم تنفيذ الكتلة دائمًا بغض النظر عن طرح الاستثناء أم لا. تتيح لك الكلمة الأساسية النهائية إنشاء كتلة من التعليمات البرمجية تتبع كتلة محاولة الالتقاط.
وأخيرا، البند اختياري. الغرض منه هو تحديد إجراءات التنظيف التي ينبغي تنفيذها في جميع الظروف.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
أخيرًا، يتم تنفيذ الجملة قبل عبارة المحاولة.
رفع البيان في Python
تحدد عبارة الرفع وسيطة تقوم بتهيئة كائن الاستثناء. هنا، تتبع الفاصلة اسم الاستثناء، والوسيطة أو مجموعة الوسيطة التي تتبع الفاصلة.
بناء الجملة:
raise [Exception [, args [, traceback]]]
في بناء الجملة هذا، تكون الوسيطة اختيارية، وفي وقت التنفيذ، تكون قيمة وسيطة الاستثناء دائمًا لا شيء.
على سبيل المثال:
A Python يمكن أن يكون الاستثناء أي قيمة مثل سلسلة أو فئة أو رقم أو كائن. معظم هذه الاستثناءات التي يثيرها Python الأساسية هي فئات ذات وسيطة وهي مثيل للفئة.
مهم Python أخطاء
| نوع الخطأ | الوصف |
|---|---|
| خطأ حسابي | يعمل ArithmeticError كفئة أساسية لجميع الاستثناءات الحسابية. يتم رفعه للأخطاء في العمليات الحسابية. |
| استيراد خطأ | يُثار خطأ الاستيراد عند محاولة استيراد وحدة غير موجودة. يحدث هذا النوع من الاستثناءات إذا قمتَ بـping خطأ في اسم الوحدة أو الوحدة غير الموجودة في المسار القياسي. |
| خطأ الفهرس | يظهر خطأ IndexErrori عند محاولة إحالة تسلسل خارج النطاق. |
| خطأ رئيسي | عندما لا يتم العثور على مفتاح معين في القاموس، يظهر استثناء KeyError. |
| الاسم خطأ | يظهر خطأ NameError عندما تتم الإشارة إلى اسم في التعليمات البرمجية وهو غير موجود أبدًا في مساحة الاسم المحلية أو العامة. |
| خطأ القيمة | يتم رفع خطأ القيمة عندما تتلقى دالة أو عملية مضمنة وسيطة قد تكون من النوع الصحيح ولكنها لا تحتوي على قيمة مناسبة. |
| خطأ | ينشأ هذا النوع من الأخطاء عندما تصل إحدى الوظائف المضمنة (input() أو Raw_input()) إلى شرط EOF دون قراءة أي بيانات. |
| خطأ في قسم الصفر | ينشأ هذا النوع من الأخطاء عند حدوث القسمة أو الوحدة على صفر لجميع الأنواع الرقمية. |
| خطأ في الإدخال- | يحدث هذا النوع من الخطأ عند فشل عملية الإدخال/الإخراج. |
| خطأ في بناء الجملة | يتم ظهور أخطاء SyntaxErrors عندما يكون هناك خطأ في Python بناء الجملة. |
| خطأ المسافة البادئة | يظهر هذا الخطأ عندما لا يتم تعريف المسافة البادئة بشكل صحيح |
أخرى مهمة Python الاستثناءات
| استثناء | الوصف |
|---|---|
| استثناء حسابي | خطأ حسابي، مثل القسمة على صفر. |
| ArraylndexOutOfBoundsException | فهرس الصفيف خارج الحدود. |
| ArrayStoreException | يساعدك الواجب على عنصر الصفيف من نوع غير متوافق. |
| ClassCastException | إرسال غير صالح |
| MlegalMonitorStateException | عملية مراقبة غير قانونية، مثل الانتظار على موضوع غير مقفل. |
| MlegalStateException | البيئة أو التطبيق في حالة خاطئة. |
| درجة بدون استثنائات | لم يتم العثور على الفئة. |
| CloneNotSupportedException | محاولة استنساخ كائن لا يطبق الواجهة القابلة للاستنساخ. |
| استثناء الوصول غير القانوني | تم رفض الوصول إلى الفصل الدراسي. |
| استثناء | يحدث هذا عند محاولة إنشاء كائن من واجهة أو مطلقtracالفئة t. |
| CloneNotSupportedException | محاولة استنساخ كائن لا يطبق الواجهة. |
الخطأ مقابل الاستثناءات
| خطأ | الاستثناءات |
|---|---|
| جميع الأخطاء في Python هي النوع الذي لم يتم التحقق منه. | تتضمن الاستثناءات كلا من النوع المحدد وغير المحدد. |
| تحدث أخطاء في وقت التشغيل وهي غير معروفة للمترجم. | يمكن استرداد الاستثناءات من خلال التعامل معها بمساعدة كتل محاولة الالتقاط. |
| تحدث الأخطاء في الغالب بسبب البيئة التي يعمل فيها التطبيق. | التطبيق نفسه يسبب استثناءات. |
| أمثلة: خطأ عدم وجود ذاكرة كافية |
أمثلة: الاستثناءات المحددة، استثناء SQL، NullPointerException، إلخ. |
