loggingとtry, exceptとtracebackを用いて、関数中のエラーの内容を捉えたい
エラーなくキャッチできる例
i = 0のときに、エラーが生じたことがloggerに追加できる
python
1 2import traceback 3from logging import getLogger 4import logging 5 6try: 7 for i in a: 8 b = 1/i 9 10except: 11 traceback.print_exc() 12 logger.error(i) 13
エラーとなる例
i = 0のときに、エラーが生じたことがloggerに追加できる
python
1 2import traceback 3from logging import getLogger 4import logging 5 6try: 7 def test(): 8 a = [-1, 0, 1] 9 for i in a: 10 b = 1/i 11 test() 12 13except: 14 #traceback.print_exc() 15 logger.error(i) 16 17NameError Traceback (most recent call last) 18~\AppData\Local\Temp/ipykernel_18096/2510062298.py in <module> 19 14 except: 20 15 #traceback.print_exc() 21---> 16 logger.error(i) 22 17 23 24NameError: name 'i' is not defined 25
スコープの範囲外なので、キャッチできないのは当然といえばそうなのですが、
無理やり関数中のローカル変数にアクセスする方法はありますか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/26 11:25
2022/01/26 12:15