Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ลองและยกเว้นใน Python


ในการใช้การจัดการข้อยกเว้นใน python ก่อนอื่นเราต้องจับ all ยกเว้นส่วนคำสั่ง

Python ให้คำสำคัญ "ลอง" และ "ยกเว้น" เพื่อตรวจจับข้อยกเว้น รหัสบล็อก "ลอง" จะดำเนินการตามคำสั่ง อย่างไรก็ตาม หากเกิดข้อยกเว้น รหัส "ลอง" ที่เหลือจะไม่ทำงานและส่วนคำสั่งยกเว้นจะถูกดำเนินการ

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! <class 'ValueError'> occured.
Next Item from the List is:
The List Item is 0
Oops! <class 'ZeroDivisionError'> occured.
Next Item from the List is:
The List Item is 2
The reciprocal of 2 is 0.5

ในโปรแกรมข้างต้น ลูปจะทำงานจนกว่าเราจะได้ (ตามที่ผู้ใช้ป้อน) เป็นจำนวนเต็มที่มีส่วนกลับที่ถูกต้อง รหัสที่ทำให้เกิดข้อยกเว้นจะอยู่ในบล็อกการลอง

ในกรณีที่มีข้อยกเว้นเกิดขึ้น จะถูกดักจับโดยบล็อกยกเว้น เราสามารถทดสอบโปรแกรมข้างต้นโดยมีข้อผิดพลาดข้อยกเว้นที่แตกต่างกัน ด้านล่างนี้คือข้อผิดพลาดทั่วไปบางประการ -

  • IOError

    เกิดขึ้นในกรณีที่เราไม่สามารถเปิดไฟล์ได้

  • ImportError

    ยกขึ้นในกรณีที่โมดูลหายไป

  • ValueError

    มันเกิดขึ้นทุกครั้งที่เราส่งอาร์กิวเมนต์ด้วยประเภทที่ถูกต้องแต่มีค่าที่ไม่เหมาะสมของโอเปอเรเตอร์หรือฟังก์ชันในตัว

  • แป้นพิมพ์ขัดจังหวะ

    เมื่อใดก็ตามที่ผู้ใช้กดปุ่มขัดจังหวะ (โดยทั่วไปคือ control-c)

  • ข้อผิดพลาด EOF

    มีข้อยกเว้นเกิดขึ้นเมื่อฟังก์ชันในตัวเข้าถึงเงื่อนไขการสิ้นสุดไฟล์ (EOF) โดยไม่อ่านข้อมูลใดๆ