例外を無視するtry-except
の使い方
Python
では、try-except
構文を使うことで例外処理が可能です。しかし、単にexcept:
と書いて全ての例外を無視するのは推奨されません。特にSystemExit
やKeyboardInterrupt
といった重要な例外も捕捉してしまうため、重大なエラーの見逃しにつながる可能性があります。
例外を特定して無視する
例えば、ファイルやディレクトリの操作でOSError
のみ無視したい場合、以下のように書くのが安全です。
try:
shutil.rmtree('path')
except OSError:
pass
このように特定の例外を捕捉することで、他の例外は引き続き処理されます。
Python 3.4以降での便利な方法: suppress()
Python
3.4以降では、contextlib.suppress()
を使うことで、指定した例外を簡単に無視することができます。これにより、コードがより簡潔になります。
from contextlib import suppress
with suppress(FileNotFoundError):
shutil.rmtree('nonexistent_dir')
この方法では、指定した例外が発生した際にプログラムが停止せず、そのまま次の処理に移ることができます。
注意点
例外を無視する場合も、その例外がどのようなエラーを引き起こすかを理解した上で適用することが重要です。すべての例外を一括で無視するのは推奨されず、適切なエラー処理を行うことで、コードの信頼性と可読性が向上します。