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

Pythonで例外メッセージをキャプチャして出力する方法

Pythonでは、発生した例外のメッセージをさまざまな方法でキャプチャし、出力することができます。以下に2つのコード例を示します。最初の例では、例外オブジェクトが持つ message 属性を使用しています。

例1:message属性を使う方法

try:
    a = 7/0
    print float(a)
except BaseException as e:
    print e.message

出力

integer division or modulo by zero

このコードでは0による除算が行われたため ZeroDivisionError が発生し、そのメッセージ「integer division or modulo by zero」が出力されます。

次に、sys モジュールをインポートし、sys.exc_value 属性を使って例外メッセージをキャプチャして出力する例を見てみましょう。

例2:sys.exc_valueを使う方法

import sys

def catchEverything():
    try:
        a = 'sequel'
        b = 0.8
        print a + b
    except Exception as e:
        print sys.exc_value

catchEverything()

出力

cannot concatenate 'str' and 'float' objects

このコードでは、文字列(str)と浮動小数点数(float)を連結しようとしたため TypeError が発生し、「cannot concatenate 'str' and 'float' objects」というメッセージが出力されます。

補足:Python 3での書き方

なお、上記のコードはPython 2向けの記述です。Python 3では message 属性や sys.exc_value は廃止されているため、代わりに組み込み関数の str(e) を使って例外メッセージを取得するのが一般的です。

try:
    a = 7/0
except BaseException as e:
    print(str(e))
  1. Pythonで辞書(dict)を印刷・出力する方法を徹底解説

    Pythonの辞書(dict)は、データを「キー」と「値」のペアで格納するデータ構造です。つまり、辞書内の各値には必ずキーが関連付けられており、そのキーが値を参照するための目印となります。 辞書の内容をコンソールで確認したい場合、いくつかのアプローチがあります。辞書をそのまま直接出力することもできますし、キーと値のペアを1つずつ個別に出力することも可能です。 このガイドでは、Pythonで辞書を印刷する方法を解説します。実際のコード例を通じて、自分のコードで辞書を出力する方法をわかりやすく紹介していきます。 forループを使って辞書を印刷する方法 まず、パン職人が読めるように辞書の内容を出力す

  2. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実