Pythonにおける標準的な例外処理パターン
Pythonにおける例外処理は、主に以下の3つのブロックを用いて行われます。
1. try
ブロック:
- 例外が発生する可能性のあるコードを記述するブロックです。
- 複数の
try
ブロックをネストさせることもできます。
Python
try:
# 例外が発生する可能性のあるコード
except Exception as e:
# 例外が発生した場合の処理
2. except
ブロック:
try
ブロック内で発生した例外を処理するブロックです。- 例外の種類を指定することで、より具体的な処理を行うことができます。
- 複数の
except
ブロックをネストさせることもできます。
Python
try:
# 例外が発生する可能性のあるコード
except ZeroDivisionError:
# ゼロで割った場合の処理
except OSError:
# ファイル操作などのOS関連のエラーが発生した場合の処理
except Exception as e:
# その他の例外が発生した場合の処理
3. finally
ブロック:
try
ブロック内、またはexcept
ブロック内で実行される、必ず実行されるブロックです。- リソースの解放や後片付けなどの処理を行うのに適しています。
Python
try:
# 例外が発生する可能性のあるコード
finally:
# 必ず実行される処理
標準的な例外処理パターンの例:
以下のコードは、ファイルを読み込んで内容を1行ずつ表示する例です。ファイルが存在しない場合や、開けない場合などの例外処理を記述しています。
Python
def read_file(filename):
try:
with open(filename, 'r') as f:
for line in f:
print(line.strip())
except FileNotFoundError:
print(f"ファイルが見つかりません: {filename}")
except OSError as e:
print(f"ファイル操作中にエラーが発生しました: {e}")
if __name__ == "__main__":
filename = input("ファイル名を入力してください: ")
read_file(filename)
上記以外にも、状況に応じて様々な例外処理パターンが考えられます。 重要なのは、想定される例外を漏れなくキャッチし、適切な処理を行うことです。
参考情報:
- Python チュートリアル - エラーと例外: https://docs.python.org/ja/3/tutorial/errors.html
- Python ドキュメント -
try
文: [無効な URL を削除しました] - Python ドキュメント -
except
文: [無効な URL を削除しました] - Python ドキュメント -
finally
文: [無効な URL を削除しました]
0 件のコメント:
コメントを投稿