Pythonが異常スタック情報を捕捉するいくつかの方法(結び目)
プログラムが間違っている時は、異常情報に基づいて、具体的なエラーコードを見つけます。簡単にprintで異常情報を印刷すると、エラーコードをよく追跡できません。
ValueError('test')
印刷の異常情報が詳細ではないので、エラーの追跡にはあまり役に立ちません。この時は異常スタックの情報が役に立ちます。以下では、異常スタック情報の印刷方法を簡単に紹介します。
1.最も簡単な方法の一つは、loging.exceptionを使うことです。
ERROR:root:test
Traceback(most recent call last):
File"E:/git_work/scrapy_ppt/test.py"line 16,in main
bar(100)
File"E:/git_work/scrapy_ppt/test.py"line 11,in bar
print('a+100:',foo(a,100)
File"E:/git_work/scrapy_ppt/test.py"line 6,in foo
ライセValueError('test')
ValueError:test
異常スタックの情報から私達は力を使わずにエラーコードを探し出すことができます。
2.その他の方法:
# -*- coding: utf-8 -*-
def foo(a, b):
c = a + b
raise ValueError('test')
return c
def bar(a):
print('a + 100:', foo(a, 100))
def main():
try:
bar(100)
except Exception as e:
print(repr(e))
if __name__ == '__main__':
main()
出力:ValueError('test')
印刷の異常情報が詳細ではないので、エラーの追跡にはあまり役に立ちません。この時は異常スタックの情報が役に立ちます。以下では、異常スタック情報の印刷方法を簡単に紹介します。
1.最も簡単な方法の一つは、loging.exceptionを使うことです。
# -*- coding: utf-8 -*-
import logging
def foo(a, b):
c = a + b
raise ValueError('test')
return c
def bar(a):
print('a + 100:', foo(a, 100))
def main():
try:
bar(100)
except Exception as e:
logging.exception(e)
if __name__ == '__main__':
main()
出力:ERROR:root:test
Traceback(most recent call last):
File"E:/git_work/scrapy_ppt/test.py"line 16,in main
bar(100)
File"E:/git_work/scrapy_ppt/test.py"line 11,in bar
print('a+100:',foo(a,100)
File"E:/git_work/scrapy_ppt/test.py"line 6,in foo
ライセValueError('test')
ValueError:test
異常スタックの情報から私達は力を使わずにエラーコードを探し出すことができます。
2.その他の方法:
# -*- coding: utf-8 -*-
import traceback
import sys
def foo(a, b):
c = a + b
raise ValueError('test')
return c
def bar(a):
print('a + 100:', foo(a, 100))
def main():
try:
bar(100)
except Exception as e:
#
traceback.print_exc()
#
msg = traceback.format_exc()
print(msg)
et, ev, tb = sys.exc_info()
#
traceback.print_tb(tb)
#
traceback.print_exception(et, ev, tb)
#
msg = traceback.format_exception(et, ev, tb)
for m in msg:
print(m)
if __name__ == '__main__':
main()
ここでPythonが異常スタックの情報をキャッチするいくつかの方法(結び目)についての記事を紹介します。Pythonに関する異常スタックの情報内容については、以前の記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。