その時のメモを残そうかと思います。
自分用の振り返りや、これから試験を受験される方にとってプラスになれば幸いです。
raiseに関する問題
raiseに関しては下記のような過去問を何度も見ていたので、あまり苦手意識はありませんでした。
1 2 3 4 5 6 7 8 9 10 |
print("出力結果: ") try: raise Exception("開始前", "Exception発生") print("開始") except IOError as msg: print("IOError発生: ", msg.args[0]) except Exception as msg: print("予期せぬ問題発生: ", msg.args[1]) else: print("Else表示") |
except Exceptionが呼び出され、
■ 実行結果
1 2 |
出力結果: 予期せぬ問題発生: Exception発生 |
しかし本番の問題はいやらしく、
下記のような感じの問題が出てきます。
1 2 3 4 5 6 7 8 9 10 11 |
print("出力結果: ") try: raise Exception("開始前", "Exception発生") print("開始") except IOError as msg: print("IOError発生: ", msg.args[0]) except Exception as msg: raise Exception("test", "testです。") print("予期せぬ問題発生: ", msg.args[1]) else: print("Else表示") |
8行目に以下が書かれています。
raise Exception(“test”, “testです。”)
raiseの中にもう一つraiseが入っているんですね。
これは正直悩みました。
このパターン考えていなかったなーっと。
実際に実行すると下記が出力されます。
■ 実行結果
1 2 3 4 5 6 7 8 9 10 11 12 |
出力結果: Traceback (most recent call last): File "c:/Users/Desktop/work/Python_Sample/PythonSample04.py", line 3, in <module> raise Exception("開始前", "Exception発生") Exception: ('開始前', 'Exception発生') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:/Users/Desktop/work/Python_Sample/PythonSample04.py", line 8, in <module> raise Exception("例外を投げた先で例外を発生させる") Exception: 例外を投げた先で例外を発生させる |
試験受ける前に実行確認出来ていれば良かった!
以上となります。
最後まで読んで頂きありがとうございます。