回答編集履歴

3

d

2020/12/15 07:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  例えば、main() から func1() を呼び出し、func1() から func2() を呼び出しているとして、func2() 内で例外が発生したとします。
48
48
 
49
- その場合、例外は func2() -> func1() -> main() と except で捕捉されるまで呼び出しもとに再送出されていくので、一番上位側に try~except を入れておけばよいという意味です。
49
+ その場合、例外は func2() -> func1() -> main() と except で捕捉されるまで呼び出しもとに再送出されていくので、一番上位側 (この場合 main()) に try~except を入れておけばよいという意味です。
50
50
 
51
51
 
52
52
 

2

d

2020/12/15 07:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -33,3 +33,53 @@
33
33
  logging.error(msg)
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ## 追記
40
+
41
+
42
+
43
+ > こちらは、例外が発生した際に、except文をいくつか書いていた場合に、上のexcept文の処理が実行されるといった解釈で良かったでしょうか...?
44
+
45
+
46
+
47
+ 例えば、main() から func1() を呼び出し、func1() から func2() を呼び出しているとして、func2() 内で例外が発生したとします。
48
+
49
+ その場合、例外は func2() -> func1() -> main() と except で捕捉されるまで呼び出しもとに再送出されていくので、一番上位側に try~except を入れておけばよいという意味です。
50
+
51
+
52
+
53
+ ```
54
+
55
+ def func2():
56
+
57
+ raise Exception("Error")
58
+
59
+
60
+
61
+
62
+
63
+ def func1():
64
+
65
+ func2()
66
+
67
+
68
+
69
+
70
+
71
+ def main():
72
+
73
+ try:
74
+
75
+ func1()
76
+
77
+ except Exception as e:
78
+
79
+ print(e)
80
+
81
+
82
+
83
+ main()
84
+
85
+ ```

1

d

2020/12/15 07:57

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- エラーが発生した場合、例外が送出されるので、ログを出力させたい場所で `try - except` 文で補足し、エラー内容を出力すればいいとおもいます。
5
+ エラーが発生した場合、例外が送出されるので、ログを出力させたい場所で `try - except` 文で例外を捕捉し、エラー内容を出力すればいいとおもいます。
6
6
 
7
7
  スタックトレースは [traceback](https://docs.python.org/ja/3/library/traceback.html) モジュールで取得できるので、必要な情報を適宜整形してログに出力すればいいとおもいます。
8
8