⊗pyPmExcDTC 77 of 129 menu

การดักจับประเภทข้อยกเว้นต่าง ๆ ใน Python

ในโค้ดเดียวกันอาจมีความจำเป็นต้อง ดักจับประเภทข้อยกเว้นที่แตกต่างกัน

สมมติว่าเราต้องการดักจับข้อยกเว้นเมื่อ มีการหารด้วยศูนย์ ข้อผิดพลาดประเภทนี้ จะทำให้เกิดข้อยกเว้น:

ZeroDivisionError: division by zero

เพื่อที่จะดักจับมัน ชื่อของข้อยกเว้นนั้น ควรถูกเขียนไว้ในบล็อก except:

try: print(1 / 0) except ZeroDivisionError: print('error: do not divide by zero')

และสมมติว่าเรามีรายการดังนี้:

lst = [1, 2, 3]

หากกำหนดโค้ดที่มีข้อผิดพลาดอื่นที่อาจเกิดขึ้น ในบล็อก try เช่น การแสดงผลองค์ประกอบที่ไม่มีอยู่ ข้อยกเว้นนั้นซึ่งไม่ได้ถูกดักจับในบล็อก except จะผ่านไปและแสดงผลในคอนโซล ส่งผลให้ การทำงานของโค้ดหยุดลง:

lst = [1, 2, 3] try: print(lst[4]) # จะแสดง IndexError: list index out of range except ZeroDivisionError: print('error: do not divide by zero')

เพื่อแก้ไขสถานการณ์ดังกล่าว จำเป็นต้องระบุ ชื่อของประเภทข้อยกเว้นที่เกี่ยวข้องในแต่ละบล็อก ลองเพิ่มการดักจับข้อยกเว้นสำหรับองค์ประกอบที่ขาดหายไป ในโค้ดของเราดู:

try: print(lst[4]) except ZeroDivisionError: print('error: do not divide by zero') except IndexError: print('error: elem is not exist')

กำหนดโค้ดต่อไปนี้:

txt = '2' res1 = txt + 3 res2 = txt1

เขียนโค้ดเพื่อดักจับข้อยกเว้นที่ปรากฏ ในตัวแปร res1 และ res2

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ