Pythonの try, except, else, finally文とtraceback, raise Exceptionの使い方・例外処理の方法

try_expect

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Pythonの try, except, else, finally文とtraceback, raise の使い方・例外処理の方法について解説します。

Pythonの try, except, else, finally文とtraceback, raise Exceptionの使い方

Pythonの例外処理try, except, else, finally文や tracebackやraise Exceptionの使い方などは、基本の考え方を理解すれば簡単です。

ポイントは、次のとおりです。

  1. try-ブロックは、例外処理の判定ブロックです。通常の処理を記述します。
    • try-ブロックの中で、失敗でエラーとして処理したい箇所ではraise Exception() を使用する!
  2. except-ブロックに異常系の処理を記述します。
    • traceback.format_exc() で例外の詳細情報を取得することができる。
  3. else-ブロックに正常系の処理を記述します。
  4. finally-ブロックに 処理の「成功/失敗」(Success/Error)に関わらず、実行する処理を記述する!

上記の考え方をCodeで表現すると、次のとおりです。

import traceback

RobotamaDataSet = {
    "robotama": "ロボ玉",
    "purupuru_flag": True,
    "age": 2,
    "from": "神聖グンマー帝国",    
    "brother_list": [
        "ロボ玉試作1号機",
        "ロボ玉試作2号機",
        "ロボ玉試作3号機"
    ],
    "skill": {
        "purupuru": "ぷるんぷるん",
        "hamham": "はむはむ",      
        "sleep": "すやー"
    }
}

print('Robotama-DataSet-Parse')

# try-ブロック => 例外処理の判定ブロック
try: 
    # 正常系
    robotama = RobotamaDataSet['skill']['hamham']

    # 異常系
    robotama = RobotamaDataSet['skill']['robotama']

# except-ブロック => 異常系の処理ブロック
except Exception as error :
    # traceback.format_exc() で例外の詳細情報を取得する
    error_msg:str = traceback.format_exc()
    print(error_msg)

# else-ブロック => 正常系の処理ブロック => 例外が発生しなかったときの処理ブロック
else :
    print('正常系の処理を実行するブロック')
    print(robotama)

# finally-ブロック => 必ず最後に実行される処理
finally :
    print('必ず最後に実行したり処理を実行するブロック')

    try:
        print(robotama)
    except Exception as error:
        # 例外を無視したい場合は、pass を使用する
        pass

    try :
        # 意図的に Exception クラスのエラーを発生させる
        raise Exception("Robotama-Error-発生")
    except Exception as error :
        print(error)

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

Python関係書籍

プログラミング学習・エンジニア転職関連の情報

自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)

『GEEK JOBキャンプ』スピード転職コース(無料)

【IT道場】入校時0円! 就職目的プログラミングスクール

エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】

『techgym』 (Python特化・無料)

最近の投稿