Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの例外処理:except節で例外の引数を受け取る方法

例外の引数とは

Pythonの例外には「引数(argument)」を持たせることができます。引数とは、発生した問題に関する追加情報を提供する値のことで、その中身は例外の種類によって異なります。例外の引数を受け取るには、except節に変数を指定します。

try:
    ここで通常の処理を行う
    ......................
except ExceptionType as Argument:
    ここでArgumentの値を出力できる

単一の例外と複数の例外の場合

単一の例外だけを処理する場合は、except文で例外名の後に変数を続けて記述できます。一方、複数の例外をまとめて捕捉したい場合は、例外をタプルで指定し、その後に変数を続けます。

try:
    処理
except (ExceptionType1, ExceptionType2) as Argument:
    エラー処理

変数が受け取る値

この変数には、主に例外の原因となる情報が渡されます。受け取る内容は単一の値の場合もあれば、タプル形式で複数の値になる場合もあります。タプルには通常、エラーメッセージ(文字列)、エラー番号、エラーの発生位置などが含まれます。なお、例外オブジェクト自身も args 属性としてこれらの情報を保持しています。

サンプルコード

以下は、単一の例外(ValueError)に対して引数を受け取り、表示する例です。

#!/usr/bin/python
# 関数を定義する
def temp_convert(var):
    try:
        return int(var)
    except ValueError as Argument:
        print("引数に数値が含まれていません\n", Argument)

# 上記の関数を呼び出す
temp_convert("xyz")

実行結果

このプログラムを実行すると、次のような結果が出力されます。

引数に数値が含まれていません
invalid literal for int() with base 10: 'xyz'

補足:Python 2とPython 3の構文の違い

古いPython 2では except ValueError, Argument: のようにカンマで区切る書き方が使われていましたが、この構文はPython 3では使用できません。現在は as キーワードを使った except ValueError as Argument: の形式が標準です。新しいコードを書く際は、必ず as を使用しましょう。

  1. Pythonで例外の引数(エラー情報)を取得する方法をわかりやすく解説

    Pythonでは、例外は「引数」を持つことができます。引数とは、発生した問題に関する追加情報を提供する値のことで、その中身は例外の種類によって異なります。例外の引数を取得するには、except 節に変数を指定します。 基本的な例 次のコードでは、ゼロ除算によって発生した例外の引数を変数に受け取り、表示しています。 try: b = float(56 + 78 / 0) except Exception as argument: print(これは例外の引数です\n, argument) 実行結果 これは例外の引数です division by zero このように、except

  2. Pythonで例外を発生させる方法!raise文の基本と実例をわかりやすく解説

    Pythonで例外を発生させるには? Pythonでは、raiseキーワードを使うことで、意図的に例外(Exception)を発生させることができます。バリデーションエラーの通知や、異常な状態の検出など、プログラムの制御フローを明確にしたい場面で非常に役立ちます。 raise文の基本構文 raise文の基本的な書式は以下のとおりです。 raise [Exception [, args [, traceback]]] 各要素の意味は次のとおりです。 Exception:発生させる例外の名前(例:ValueError、TypeError など) args(省略可能):例外に渡す引数の値。エラー