Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào tôi có thể viết một khối thử / ngoại trừ bắt tất cả các ngoại lệ Python?

Một quy tắc chung là mặc dù bạn có thể nắm bắt tất cả các trường hợp ngoại lệ bằng cách sử dụng mã như bên dưới, nhưng bạn không nên:

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

Tuy nhiên, điều này cũng sẽ bắt các ngoại lệ như KeyboardInterrupt mà chúng tôi có thể không quan tâm. Trừ khi bạn nâng cao lại ngoại lệ ngay lập tức - chúng tôi sẽ không thể bắt các ngoại lệ:

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

Chúng tôi nhận được kết quả như sau, nếu tệp.txt không có sẵn trong cùng thư mục với tập lệnh.

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