Print error type, error statement and own statement
我想尝试一个语句,如果有一个错误,我希望它打印它收到的原始错误,但也要添加我自己的语句。
我在找这个答案,找到了一些几乎完整的答案。
以下代码几乎满足了我的所有需求(我使用的是python 2,所以它可以工作):
1 2 | except Exception, e: print str(e) |
这样我就可以打印错误消息和我想要的字符串,但是它不打印错误类型(
如果要打印异常信息,可以使用
1 2 3 4 5 6 7 | import traceback try: infinity = 1 / 0 except Exception as e: print"PREAMBLE" traceback.print_exc() print"POSTAMBLE, I guess" |
这给了你:
1 2 3 4 5 6 | PREAMBLE Traceback (most recent call last): File"testprog.py", line 3, in <module> infinity = 1 / 0 ZeroDivisionError: integer division or modulo by zero POSTAMBLE, I guess |
您也可以在不使用
1 2 3 4 5 6 | try: infinity = 1 / 0 except Exception as e: print"PREAMBLE" raise print"POSTAMBLE, I guess" |
注意在这种情况下缺少
1 2 3 4 5 | PREAMBLE Traceback (most recent call last): File"testprog.py", line 2, in <module> infinity = 1 / 0 ZeroDivisionError: integer division or modulo by zero |
从python文档:
1 2 3 4 5 6 | try: raise Exception('spam', 'eggs') except Exception as inst: print(type(inst)) # the exception instance print(inst.args) # arguments stored in .args print(inst) # __str__ allows args to be printed directly, |
将打印:
1 2 3 | <type 'exceptions.Exception'> ('spam', 'eggs') ('spam', 'eggs') |