例外を無視してPythonで続行する方法


ベストアンサー

最初に、例外を無視することは多くの場合正しいことではないことを明確にしましょう。

これを行う従来の方法は、例外を受け入れて渡すことです。

>>> def remover(filename):

... import os

... try:

... os.remove(filename)

... except FileNotFoundError:

... pass

...

>>> remover("non-existent file")

>>>

も使用できます例外を無視する contextlib.suppress()

>>> def remover(filename):

... import os

... import contextlib

... with contextlib.suppress(FileNotFoundError):

... os.remove(filename)

...

>>> remover("non-existent file")

>>>

ファイルがyかどうかは本当に気にしないと仮定します存在するかどうかを削除しようとしていますが、上記のようなもので問題ありません。しかし、1)重要な例外を無視するか、2)実際に予想されるよりも多くの例外をキャッチする(潜在的なバグを効果的に隠す)という驚くべき傾向が見られます。

回答

合格

質問に合格しないでください。

試してみてください:

失敗する可能性のあるもの

特定の例外を除く:

パス

ただし、次の人があなたのコードを読むのにパスが理にかなっている理由についてコメントしてください。私は時々これをファイルや不足している可能性のあるものに対して行います。ただし、すべてのエラーをキャッチするのではなく、時々発生すると予想されるエラーだけをキャッチしてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です