【Pythonメモ 】例外を呼び出し元に送信する方法

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

・関数内のexcept内で、raiseを行うことで例外を呼び出し元に送信することができる。  

呼び出し元に例外を送信するサンプル

#!/usr/bin/python
# -*- Coding: utf-8 -*-


class Hoge(object):

    def huga():
        try:
            raise TypeError('TYPE ERROR!')
        except Exception as e:
            raise           # 呼び出し元に送信

    try:
        huga()
        
    except Exception as e:
        print(type(e))      # 1回目のエラー出力

・関数内でエラーを出力して、呼び出し元に例外を送信することも可能。

関数内でエラー出力後、呼び出し元に例外を送信するサンプル

#!/usr/bin/python
# -*- Coding: utf-8 -*-


class Hoge(object):

    def huga():
        try:
            raise TypeError('TYPE ERROR!')
        except Exception as e:
            print(type(e))  # 1回目のエラー出力
            raise           # 呼び出し元に再送

    try:
        huga()
        
    except Exception as e:
        print(type(e))      # 2回目のエラー出力

上記のexcept内にloggingを使用すれば、関数内のローカル変数をログに出力を行い、呼び出し元で別のログ出力することができる。