Pythonでエラーハンドリングを行う際、特定のエラーをキャッチするためにはそのエラーの型を指定します。しかし、予期しないエラーが発生した場合、どのように処理すればよいでしょうか?
try:
# 何らかの処理
except ValueError:
print("the input is Invalid(dd.mm.year)")
except Exception as e:
print("Unknown error")
print(e)
上記のコードでは、ValueError
以外の全てのエラーをキャッチしています。Exception
はPythonの組み込みエラー(システム終了を除く)を全てキャッチします。
しかし、注意が必要なのは、Exception
はKeyboardInterrupt
、SystemExit
、GeneratorExit
を無視します。これらのエラーは通常、キャッチしない方が良いです。
このように、Pythonでは未知のエラーを処理するためにException
を使用します。しかし、可能な限り具体的なエラーをキャッチするようにし、Exception
は最終的なキャッチオールとして使用することを推奨します。
- 参考文献:
- Stack Overflow, “Exception in python unknown errors”