在Python中,获取异常信息通常使用`try...except`结构。以下是一些获取异常信息的方法:
1. 使用`str(e)`获取异常的字符串表示,它只包含异常的描述信息,不包括异常的类型。
2. 使用`repr(e)`获取异常的完整表示,包括异常的类型和描述信息。
3. 使用`e.message`获取异常的描述信息,这与`str(e)`类似。
4. 使用`traceback`模块可以获取更详细的异常信息,包括异常的类型、描述以及发生异常的具体位置。`traceback.print_exc()`函数可以将异常信息打印到标准错误输出,而`traceback.format_exc()`函数可以将异常信息格式化为字符串。
下面是一个使用`try...except`结构获取异常信息的示例:
try:
1 / 0 这将引发一个ZeroDivisionError异常
except Exception as e:
print("str(Exception):", str(e))
print("repr(Exception):", repr(e))
print("e.message:", e.message)
print("traceback.print_exc():")
traceback.print_exc()
print("traceback.format_exc():\n%s" % traceback.format_exc())
运行上述代码将输出类似以下内容:
str(Exception): integer division or modulo by zero
repr(Exception): ZeroDivisionError('integer division or modulo by zero',)
e.message: integer division or modulo by zero
Traceback (most recent call last):
File "example.py", line 5, in
1 / 0
ZeroDivisionError: integer division or modulo by zero
以上方法可以帮助你定位和调试程序中的异常