2024年5月4日土曜日

Pythonにおける標準的な例外処理パターン

 

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 件のコメント:

コメントを投稿