【Python】withステートメント使用時に例外をキャッチする方法
Pythonでは、withステートメント内で発生した例外を捕捉したい場合、try...exceptブロックでwithステートメント全体を囲みます。以下のようにコードを書き換えることで、例外をキャッチできます。
try:
with open("myFile.txt") as f:
print(f.readlines())
except:
print('No such file or directory')
このコードを実行すると、次のような出力が得られます。
C:/Users/TutorialsPoint1/~.py No such file or directory
仕組みの解説
tryブロックの中にwithステートメントを記述することで、指定したファイルが存在しない場合などに発生するFileNotFoundErrorなどの例外を捕捉できます。また、withステートメントは例外の有無にかかわらずファイルを自動的にクローズしてくれるため、リソース管理の面でも安全な書き方です。
より具体的な例外を指定する
上記の例ではexcept節ですべての例外を捕捉していますが、実際の開発では、捕捉する例外を明示的に指定することが推奨されます。
try:
with open("myFile.txt") as f:
print(f.readlines())
except FileNotFoundError:
print('No such file or directory')
特定の例外だけを捕捉するようにすれば、予期しないエラーまで握りつぶしてしまうことを防げるため、デバッグや保守もしやすくなります。
-
PythonでIOError例外をキャッチする方法【初心者向けにわかりやすく解説】
IOError例外とは? IOError(入出力エラー)は、入出力操作が失敗したときに発生する例外です。代表的な例としては、存在しないファイルをopen()関数で開こうとした場合や、OSに関連するエラーが発生した場合などが挙げられます。 なお、Python 3ではIOErrorはOSErrorの別名(エイリアス)となっており、どちらの名前で捕捉しても同じ例外を受け取ることができます。 try-exceptブロックで例外を処理する ファイルを開く処理などをtryブロック内に記述すると、入出力例外が発生した際にexceptブロックで適切に処理できます。以下に具体的なコード例を示します。 コード例(
-
PythonでKeyError例外をキャッチする方法をわかりやすく解説
Pythonでは、辞書(dict)に存在しないキーを使って値へアクセスしようとすると、KeyError例外が発生します。この記事では、try-except文を使ってKeyErrorをキャッチし、例外の種類や詳細情報を確認する方法を解説します。 KeyErrorが発生する仕組み 次のコードは、辞書に存在しないキー c で値を取得しようとしているため、KeyErrorが発生します。sys.exc_info() を使うと、発生した例外の型などの情報を取得できます。 import sys try: s = {a: 5, b: 7}[c] except: print(sys.exc_i