Python で例外を出力する

Vaibhav Vaibhav 2023年1月30日
  1. Python で try-except-finally ブロックを使用して例外を出力する
  2. Python で traceback モジュールを使用して例外を出力する
Python で例外を出力する

Python では、例外はエラーです。Python には、TypeErrorSyntaxErrorKeyErrorAttributeError などの多くのエラーまたは例外があります。これらのブロックがないと、これらの例外を処理するために Python で try-except-finally を使用します。これらの例外は、プログラムの実行を停止します。Python の try-except-finally ブロックを使用すると、プログラムの実行を停止せずにこれらの例外を出力できます。

Python で try-except-finally ブロックを使用して例外を出力する

次のコードスニペットについて考えてみます。

dictionary = {
    "hello": "world",
}
number = 25

try:
    number = number + dictionary["hello"]
    print(number)
except Exception as e:
    print(repr(e))

出力:

TypeError("unsupported operand type(s) for +: 'int' and 'str'",)

上記のコードでは、最初に、文字列値 world を指すキーとして hello を使用し、変数 number を使用して辞書を初期化します。次に、try ブロック内で、dictionary に格納されている文字列値にアクセスし、それを number 変数に追加しようとしています。

整数文字列を追加することは不可能であるため、このステートメントは実際的にも概念的にも間違っています。したがって、except ブロックはこのエラーをキャッチし、この例外に関連付けられた Exception オブジェクトをコンソールに出力します。

Python で traceback モジュールを使用して例外を出力する

Python には、例外を出力およびフォーマットするための組み込みモジュール traceback があります。また、コンソールで例外全体を簡単に出力できます。

Python では、raise キーワードを使用して手動で例外を発生させることができます。次のコードスニペットでは、raise キーワードを使用して、try ブロック内で例外を発生させます。

import traceback

try:
    raise KeyError
except Exception as e:
    traceback.print_exc()

出力:

Traceback (most recent call last):
  File ".\main.py", line 4, in <module>
    raise KeyError
KeyError

上記のコードでは、KeyError 例外を発生させ、モジュール tracebackprint_exc() 関数を使用して例外を出力します。この関数は、例外に関する情報を出力し、traceback.print_exception(*sys.exc_info(), limit, file, chain) の省略形です。

print_exception() 関数の詳細については、公式ドキュメントこちらを参照してください。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python Exception