Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách viết try/except block catch tất cả Python exceptions?

Đây là quy tắc chung rằng dù bạn có thể catch tất cả exceptions dùng code như dưới, bạn không nên:

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

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

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 ta nhận được output như sau, nếu file.txt không có sẵn trong cùng folder với script.

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