เพื่อใช้การจัดการข้อยกเว้นใน Python เราต้องจับ except clauses ทั้งหมดก่อน
Python มีคีย์เวิร์ด "try" และ "except" สำหรับจับข้อยกเว้น บล็อก "try" จะถูกรันคำสั่งทีละคำสั่ง อย่างไรก็ตาม หากเกิดข้อยกเว้น โค้ด "try" ที่เหลือจะไม่ถูกรัน และ except clause จะถูกรันแทน
try: some_statements_here except: exception_handling
มา看看ไวยากรณ์ข้างต้นด้วยตัวอย่างง่ายๆ −
try: print("Hello, World!") except: print("This is an error message!")
ผลลัพธ์
Hello, World!
ข้างต้นเป็นตัวอย่างง่ายมาก มาเข้าใจแนวคิดข้างต้นด้วยตัวอย่างอีกอย่าง −
import sys List = ['abc', 0, 2, 4] for item in List: try: print("The List Item is", item) r = 1/int(item) break except: print("Oops!",sys.exc_info()[0],"occured.") print('\n') print("Next Item from the List is: ") print() print("The reciprocal of",item,"is",r)
ผลลัพธ์
The List Item is abc Oops!occured. Next Item from the List is: The List Item is 0 Oops! occured. Next Item from the List is: The List Item is 2 The reciprocal of 2 is 0.5
ในโปรแกรมข้างต้น ลูปจะรันจนกว่าเราจะได้ (เป็นอินพุตจากผู้ใช้) จำนวนเต็มที่มี reciprocal ที่ถูกต้อง โค้ดที่ทำให้เกิดข้อยกเว้นถูกวางไว้ภายใน try block
ในกรณีที่มีข้อยกเว้นเกิดขึ้น มันจะถูกจับโดย except block เราสามารถทดสอบโปรแกรมข้างต้นกับข้อผิดพลาดข้อยกเว้นทั่วไปได้ ด้านล่างคือบางข้อยกเว้นทั่วไป −
IOError
เกิดขึ้นในกรณีที่เราเปิดไฟล์ไม่ได้
ImportError
เกิดขึ้นในกรณีที่โมดูลหายไป
ValueError
เกิดขึ้นเมื่อเราส่งอาร์กิวเมนต์ที่มีชนิดถูกต้องแต่ค่าไม่เหมาะสมของ built-in operator หรือ function
KeyboardInterrupt
เมื่อผู้ใช้กดปุ่ม interrupt (โดยทั่วไป control-c)
EOFError
ข้อยกเว้นที่เกิดขึ้นเมื่อ built-in functions พบเงื่อนไข end-of-file (EOF) โดยไม่ได้อ่านข้อมูลใดๆ