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

ฉันจะเขียนบล็อกลอง / ยกเว้นที่จับข้อยกเว้น Python ทั้งหมดได้อย่างไร


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

try:
    #do_something()
except:
    print "Exception Caught!"

อย่างไรก็ตาม สิ่งนี้จะจับข้อยกเว้นเช่น KeyboardInterrupt ที่เราอาจไม่สนใจ เว้นแต่คุณจะแจ้งข้อยกเว้นอีกครั้งในทันที เราจะตรวจจับข้อยกเว้นไม่ได้:

try:
    f = open('file.txt')
    s = f.readline()
    i = int(s.strip())
except IOError as (errno, strerror):
    print "I/O error({0}): {1}".format(errno, strerror)
except ValueError:
    print "Could not convert data to an integer."
except:
    print "Unexpected error:", sys.exc_info()[0]
    raise

เราจะได้ผลลัพธ์ดังนี้ ถ้า file.txt ไม่มีอยู่ในโฟลเดอร์เดียวกับสคริปต์

I/O error(2): No such file or directory