Đâ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