1. ホーム
  2. python

[解決済み] すべての例外をキャッチする `try`/`except` ブロックはどのように書けばよいですか?

2022-03-17 11:05:41

質問

を書くにはどうすればよいのでしょうか? try / except ブロックがすべての例外をキャッチするのですか?

解決方法は?

できるけど、たぶんしないほうがいい。

try:
    do_something()
except:
    print("Caught it!")

ただし、これは以下のような例外もキャッチします。 KeyboardInterrupt そして、通常、そんなことは望んでいないでしょう?例外をすぐに再レイズしない限りは - 次の例を見てください。 ドキュメントより :

try:
    f = open('myfile.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