【Python】try…exceptを二重にしたらどうなるのか

エラー制御してたらtry…exceptを二重にした時どんな挙動を示すのかふと疑問に思ったのでやってみました

目次

テストソースと結果

こんなものは調べる必要もなく、とにかくやってみればいいんです!

最低限のソースで二重にしたtry…exceptを作ってやってみます

try:
    # 内側でエラーを発生させる
    print("確認1")
    try:
        print("確認2")
        raise Exception("内側エラー")
    except Exception as e:
        print(e)
    else:
        print("正常1")

    # 外側でエラーを発生させる
    print("確認3")
    raise Exception("外側エラー")
except Exception as e:
    print(e)
else:
    print("正常2")


'''
出力結果

確認1
確認2
内側エラー
確認3
外側エラー
'''

下部の出力結果の通りではありますが、ネストした場合はちゃんと内側のtryだけで完結して外側のtryには影響ありませんでした

つまり全体をtryの中に入れつつ、個別エラー検知用のtryを使っても問題ないってこと

VSCodeのデバックで実行経路を確認

視覚的に確認した方がわかりやすいと思うのでgifも貼っておきます

あとがき

想定通りと言うか希望通りの動きだったので一安心

あまりネストし過ぎると可読性が悪くなりそうだしほどほどに・・・

📚 Python自動化の独学に効く本PR
退屈なことはPythonにやらせよう 第3版

退屈なことはPythonにやらせよう 第3版

Al Sweigart

Pythonクローリング&スクレイピング 増補改訂版

Pythonクローリング&スクレイピング 増補改訂版

加藤耕太

シゴトがはかどる Python自動処理の教科書

シゴトがはかどる Python自動処理の教科書

クジラ飛行机

私のおすすめからランダムで3冊を表示しています


最後に・・・

クラウドワークスココナラでお仕事受け付けています!

PythonとExcelを中心に仕事に役立つ業務ツールや自動化、スクレイピングツールの作成を受注していて、クラウドワークスでは気が付けば100件以上のお仕事を受注してきました!

会社員をやりながらの副業なので時間の捻出は相応ですが、クライアントの方々と近い立場でこちらからも提案しながら活動していますのでお悩みあれば是非ご相談ください

ココナラのプロフィールページへ

"ココナラ"に新規登録する際は1,000Pもらえる紹介コード使ってください

78E62K

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAとPythonを中心にユーザー側でできるITを自己学習しているので備忘録半分、学習履歴を残して同じ道を辿る人の参考になればとブログを始めました

副業でスクレイピングツール作成を中心にできることを色々やっていますのでご相談いただけるとありがたいです!


クラウドワークスのページへ


ココナラのページへ

コメント

コメントする

目次