こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Pythonの try, except, else, finally文とtraceback, raise の使い方・例外処理の方法について解説します。
目次
Pythonの try, except, else, finally文とtraceback, raise Exceptionの使い方
Pythonの例外処理try, except, else, finally文や tracebackやraise Exceptionの使い方などは、基本の考え方を理解すれば簡単です。
ポイントは、次のとおりです。
- try-ブロックは、例外処理の判定ブロックです。通常の処理を記述します。
- try-ブロックの中で、失敗でエラーとして処理したい箇所では
raise Exception()
を使用する!
- try-ブロックの中で、失敗でエラーとして処理したい箇所では
- except-ブロックに異常系の処理を記述します。
- traceback.format_exc() で例外の詳細情報を取得することができる。
- else-ブロックに正常系の処理を記述します。
- 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!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!