Print exception details recursively while using try except
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/env python #import re def test_ex1(input): if re.match(r'^[A-Z]+$',input): print 'Match' return True print 'No Match' return False #test_ex1('ABC') try: test_ex1('ABC') except Exception: raise Exception |
如果我运行上述程序,它将打印以下异常消息。
1 2 3 4 5 | a:~/Python> python test.py Traceback (most recent call last): File"test.py", line 18, in <module> raise Exception Exception |
在使用
1 2 3 4 5 6 | Traceback (most recent call last): File"test.py", line 15, in <module> test_ex1('ABC') File"test.py", line 8, in test_ex1 if re.match(r'^[A-Z]+$',input): NameError: global name 're' is not defined |
一种方法是使用
1 2 3 4 5 6 | import traceback try: re.match() except Exception: traceback.print_exc() |
我曾经用以下方法将所有的回溯打印为:
1 2 3 4 5 6 | import sys try: # code here except Exception: print(sys.exc_info()[0]) |
使用