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 を使用しましょう。
-
Pythonで例外の引数(エラー情報)を取得する方法をわかりやすく解説
Pythonでは、例外は「引数」を持つことができます。引数とは、発生した問題に関する追加情報を提供する値のことで、その中身は例外の種類によって異なります。例外の引数を取得するには、except 節に変数を指定します。 基本的な例 次のコードでは、ゼロ除算によって発生した例外の引数を変数に受け取り、表示しています。 try: b = float(56 + 78 / 0) except Exception as argument: print(これは例外の引数です\n, argument) 実行結果 これは例外の引数です division by zero このように、except
-
Pythonで例外を発生させる方法!raise文の基本と実例をわかりやすく解説
Pythonで例外を発生させるには? Pythonでは、raiseキーワードを使うことで、意図的に例外(Exception)を発生させることができます。バリデーションエラーの通知や、異常な状態の検出など、プログラムの制御フローを明確にしたい場面で非常に役立ちます。 raise文の基本構文 raise文の基本的な書式は以下のとおりです。 raise [Exception [, args [, traceback]]] 各要素の意味は次のとおりです。 Exception:発生させる例外の名前(例:ValueError、TypeError など) args(省略可能):例外に渡す引数の値。エラー