見出し画像

【ワンピースで覚えるpython】第9回 例外処理

今回は例外処理について、解説していきます。

単行本4巻でウソップがお嬢様暗殺計画を知ったあとのシーンを例に、説明しています。

Pythonで例外をキャッチして処理するにはtry, exceptを使う。例外が発生しても途中で終了させずに処理を継続できるので便利です。

'''
try:
    例外が発生しうる処理
except 例外クラス:
    例外処理

例外クラス(ValueError, TypeErrorなど)
'''
print("---開始--")
try:
    input = input("お嬢様暗殺計画を知りましたか? (0: いいえ, 1: はい): ")
    is_attacked = bool(int(input))
except ValueError:
    print("攻撃があるか不明です")
print("---終了--")

'''
try:
    例外が発生しうる処理
except 例外クラス:
    例外処理
else:
    正常終了時の処理
'''
print("---開始--")
try:
    input = input("お嬢様暗殺計画を知りましたか? (0: いいえ, 1: はい): ")
    is_attacke = bool(int(input))
except ValueError:
    print("不明です")
else:
    if is_attacke:
        print("本当に明日の朝!!海賊が攻めてくるんだ!!")
    else:
        print("何事もなく平和な1日でした!!")
print("---終了--")

'''
try:
    例外が発生しうる処理
except 例外クラス:
    例外処理
else:
    正常終了時の処理
finally:
    終了時に必ず実行される処理
'''
print("---開始--")
try:
    input = input("お嬢様暗殺計画を知りましたか? (0: いいえ, 1: はい): ")
    is_attacke = bool(int(input))
except ValueError:
    print("不明です")
else:
    if is_attacke:
        print("本当に明日の朝!!海賊が攻めてくるんだ!!")
    else:
        print("何事もなく平和な1日でした!!")
finally:
    print("おれは勇敢なる海の戦士 キャプテン・ウソップ!!")
print("---終了--")

'''
補足した例外を変数として扱う
except 例外クラス as 変数:
'''
print("---開始--")
try:
    input = input("お嬢様暗殺計画を知りましたか? (0: いいえ, 1: はい): ")
    is_attacked = bool(int(input))
except ValueError as e:
    print(f"不明です: {e}")
print("---終了--")


'''
例外を発生させる
raise 例外クラス:
'''
print("---開始--")
try:
    is_believed = bool(int(input("信じてもらえましたか? (0: 信じられなかった, 1: 信じてもらえた): ")))
    if not(is_believed):
        raise Exception("いつものウソに決まってんだろ")
except ValueError:
    print("不明です")
except Exception as e:
    print(f"例外発生: {e}")
finally:
    print("おれは勇敢なる海の戦士 キャプテン・ウソップ!!")
print("---終了--")

この記事が気に入ったらサポートをしてみませんか?