يسمح لنا التعامل مع الهواء بالسماح للبرنامج النصي بالاستمرار في العمل ، حتى إذا كان هناك خطأ.
دعنا نجرب مثالاً لنوضح لك كيف يمكننا معالجة الأخطاء و Python.
لنفترض أننا أردنا إنشاء برنامج يسمح لنا بأخذ مدخلات المستخدم.
لنفترض أننا نطلب من المستخدم H ، لذلك نستخدم موجه الإدخال ونقول ، ما هو H الخاص بك؟
وبعد ذلك ، كل ما سنفعله هو طباعة حرف H.
برنامج جميل وبسيط.
إذا قمت بتشغيل هذا.
وأنا أكتب ، دعنا نقول ، عشرة.
ها أنت ذا.
كل شيء يعمل.
لكن ماذا لو لم أدخل رقمًا وذهبت هكذا؟
حسنًا ، هذا لا يزال يعمل.
لكن هل هذا ما أردت أن أفعله ببرنامجي؟
ربما كنت أرغب في إدخال العمر وحساب ما إذا كان بإمكانهم لعب اللعبة أم لا ، سواء كانوا 18 عامًا
أو أكثر.
كيف يمكننا إصلاح هذا؟
حسنًا ، شيء واحد يمكننا القيام به هو مجرد لف هذا في عدد صحيح ، أليس كذلك؟
لذلك نقوم بتحويل كل ما يعطينا المستخدم إلى عدد صحيح حتى إذا قمت بتشغيل هذا.
وأنا أكتب هذا.
أوه لقد تلقيت خطأ قيمة خطأ حرفي غير صالح ل int.
أحاول التحويل.
هذا في عدد صحيح ، لكنه يخبرني أن هذا خطأ.
لا أستطيع فعل ذلك.
فكيف يمكننا إصلاح هذا من خلال معالجة الأخطاء في بايثون؟
يمكننا أن نفعل ذلك بهذه الطريقة.
لدينا الأطواق الثلاثية ، ولدينا الكلمة الرئيسية الثلاث التي تقول ، مرحبًا ، أريدك أن تجرب هذا الجزء من الكود وعلينا التأكد من
أننا نضع مسافة بادئة له.
لذلك نحن نجرب هذا الجزء من الكود.
الآن أي شيء يحدث داخل كتلة القبيلة.
أنا قادر على التعامل معها.
انظر من أين تأتي المعالجة.
AYRES مع الكلمة الأساسية باستثناء.
وما عدا.
يقول يا.
إذا كان هناك أي شيء هنا في الكتلة الثلاثية ، إذا تم بث أي شيء ، أريدك أن تقول شيئًا.
لذا بدلاً من الحصول على هذا الهواء الأحمر الذي يخرج من البرنامج ، افعل شيئًا آخر.
افعل هذا.
لذلك سأقول.
مطبعة.
الرجاء إدخال رقم.
دعونا نرى ما سيحدث الآن.
إذا قمت بالنقر فوق تشغيل.
ما هو سني؟
سأكتب رطانة فقط.
وانظر إلى ذلك الذي فهمته.
الرجاء إدخال رقم.
أنا أتعامل مع أخطائي هنا عن طريق تغليف كل الكود الخاص بي في كتلة محاولة حتى أتمكن من نسخ اللصق
، وإضافة ملفي بالكامل هنا ، ووضعه داخل كتلة المحاولة وما سيحدث هو بدلاً من بث
البرنامج من قبل يتعطل برنامجي ، وسوف يقوم بتشغيل هذا الكود وبعد ذلك
سيقول ، إذا حدث أي شيء داخل هذه الكتلة ، فسوف نلحق به هنا مع كتلة القبول ويمكنني سماع.
افعل ما أريد.
في حالتي ، يمكنني القول ، مرحبًا ، الرجاء إدخال رقمنا.
لكن لدينا مشكلتنا هنا ، أليس كذلك؟
انتهى البرنامج للتو ونريد استمرار ذلك.
لا بد لي من النقر فوق تشغيل مرة أخرى وأطلب H مرة أخرى.
إذن كيف يمكننا التأكد من أننا نستمر في تشغيل هذا حتى ، حسنًا ، يقوم المستخدم بالفعل بإدخال شيء
صالح؟
حسنًا ، لقد رأينا هذا من قبل.
يمكننا أن نفعل حلقة while ونقول بينما يكون هذا صحيحًا.
رون هذا.
وإذا نجح هذا.
حسنًا ، نأمل أن نحصل على h دعنا نرى أنه إذا قمت بالنقر فوق تشغيل ما هو H دعنا نقول.
لا.
الرجاء إدخال رقمك.
ما هو عمرك؟
دعنا نحاول كسرها مرة أخرى.
الرجاء إدخال رقم.
حسنًا ، حسنًا.
عمري عشر سنوات.
ها أنت ذا.
أحصل على اسم عشرة ، لكن.
أوه ، ما زال يسألني ما هو عمري؟
من الناحية المثالية ، أريد الخروج من هذا البيان الصحيح.
الصحيح.
فكيف يمكنني فعل ذلك؟
حسنًا ، يمكنني استخدام ما نسميه هنا كتلة أخرى ، والتي رأيناها من قبل.
لكن هذا يعمل مع محاولة باستثناء الكتلة.
نضعها في النهاية ، تقول ، مرحبًا ، جرب هذا.
إذا كان هناك خطأ ، فافعل هذا.
ومع ذلك ، إذا لم يكن هناك خطأ آخر ، فافعل هذا.
لذلك في حالتنا ، يمكننا أن نقول استراحة.
وتعلم ماذا؟
يمكننا حتى الطباعة.
شكرًا لك.
فقط لذلك نحن لطيفون ، إذا أوقفت هذا وركضت مرة أخرى وأعطيتهم عمري.
ها أنت ذا.
لقد انتهينا.
لقد خرجنا من الحلقة وكل شيء على ما يرام.
ويمكن لهذه الكتلة ثلاثية القبول ls أن تذهب إلى أي مكان.
يمكننا التفاف الملف بأكمله في محاولة باستثناء كتلة أخرى.
يمكننا فقط إضافته إلى وظائفنا داخل وظائفنا الفردية ، كل ما نريده يمكننا استخدامه.
هذه مجرد أداة أخرى توفرها لنا Python للتعامل مع الأخطاء.
لكن دعني أسألك شيئًا.
ماذا لو فعلت بدلاً من طباعة h ، دعنا نقول ، عشرة مقسومة على العمر.
إذا قمت بتشغيل برنامجي.
وأكتب هنا صفرًا وأدخل.
أوه ، لقد دخلت هناك.
الرجاء إدخال رقمنا.
لكنني أدخلت رقمًا.
هذا برنامج عربات التي تجرها الدواب.
على الرغم من أنني أكتب رقمًا ، إلا أنه لا يزال يعطيني نفس رسالة الخطأ.
فكيف نتعامل مع هذا؟
كيف نتعامل مع أخطاء مختلفة ، أحدها يكون فيه خطأ في القيمة والآخر يكون خطأ قسمة صفريًا
بشكل واضح.
حسنًا ، في كتلة القبول ، يمكنني ببساطة أن أعطيها نوع الخطأ الذي أريد معالجته.
وتذكر أن هذه أخطاء مضمنة هنا يمكنني فقط نسخها ولصقها.
لذلك في حالتي ، أريد أن أقول إن هذا يتعلق بخطأ في القيمة حتى إذا قمت بتشغيل البرنامج الخاص بي.
وأنا أكتب الصفر.
أوه ، أحصل على هوائي.
هذا باستثناء القفل يقبل القيمة فقط.
أخطاء.
أي أخطاء أخرى لا يهتم بها.
همم.
إذن ماذا يمكننا أن نفعل هنا؟
حسنًا ، أحد الخيارات هو النسخ هنا والقول ، مهلاً ، دعنا نضيف خيارًا آخر ، باستثناء وفي هذه الحالة أريد
خطأ قسمة صفريًا.
في حالة إدخال المستخدم للصفر ، يمكنك القول من فضلك أدخل h أعلى من الصفر.
لذلك إذا قمت بتشغيل هذا الآن.
وأنا أفعل صفرًا أحصل عليه ، يرجى إدخال h أعلى من الصفر.
إذا فعلت بعض الثرثرة.
عذرًا.
إذا قمت ببعض الثرثرة التي أحصل عليها ، فيرجى إدخال رقم.
إذا أدخلت رقمًا أخيرًا ، انظر إليه.
شكرًا لك.
كل شيء يعمل.
الآن هذا سؤالي.
ماذا يحدث إذا دخلنا؟
خطأ آخر في القيمة هنا.
وهذا الخطأ في القيمة سيقول فقط علامات التعجب.
ماذا يحدث الان؟
انا حصلت؟
الرجاء إدخال رقم لأن حظر القبول هذا سيعمل مرة واحدة فقط.
بمجرد اكتشاف الخطأ الذي تبحث عنه ، سيتم تشغيله.
ثم عد إلى الحلقة.
لذلك سيتم اكتشاف خطأ واحد فقط.
لنأخذ قسطًا من الراحة ونتعرف على المزيد حول معالجة الأخطاء في الفيديو التالي.
مع السلامة.