sys.exc_info()
时间: 2024-01-21 07:16:33 浏览: 11
`sys.exc_info()` 是一个 Python 标准库中的函数,它返回当前正在处理的异常的相关信息(类型、值和 traceback 对象)。如果没有异常正在处理,则返回一个三元组 `(None, None, None)`。这个函数可以用于获取当前异常的信息,以便进行异常处理或者异常日志记录等操作。
示例代码:
```python
import sys
try:
# some code that may raise an exception
1 / 0
except:
exc_type, exc_value, exc_tb = sys.exc_info()
print(f"Exception type: {exc_type}")
print(f"Exception value: {exc_value}")
print(f"Traceback object: {exc_tb}")
```
输出:
```
Exception type: <class 'ZeroDivisionError'>
Exception value: division by zero
Traceback object: <traceback object at 0x7f8f1c3f6a80>
```
相关问题
sys.exc_info() 的使用
sys.exc_info() 函数返回当前正在处理的异常信息的元组。如果当前没有异常,则返回一个三元素元组,每个元素都为 None。
该函数通常与 try-except 语句一起使用。当程序出现异常时,可以使用该函数来获取异常的类型、值和 traceback 对象,从而进行后续的处理。
下面是一个使用 sys.exc_info() 函数的示例:
```python
import sys
try:
# some code that may raise an exception
1/0
except:
exc_type, exc_value, exc_traceback = sys.exc_info()
print("Exception type:", exc_type)
print("Exception value:", exc_value)
print("Traceback object:", traceback.print_tb(exc_traceback))
```
在上面的例子中,我们使用了 try-except 语句来捕获可能出现的异常。当异常发生时,我们使用 sys.exc_info() 函数来获取异常的类型、值和 traceback 对象,并将它们打印出来。
sys.exc_info()应用实例
`sys.exc_info()` 是 Python 内置的一个函数,用于获取当前异常的相关信息。它返回一个包含三个元素的元组,分别是最近一次异常的类型、异常对象和 traceback 对象。
以下是一个 `sys.exc_info()` 的应用实例:
```python
import sys
def divide(a, b):
try:
result = a / b
except:
exc_type, exc_obj, exc_tb = sys.exc_info()
print(f"Error: {exc_type.__name__} - {exc_obj} - line {exc_tb.tb_lineno}")
else:
return result
print(divide(4, 2)) # Output: 2.0
print(divide(4, 0)) # Output: Error: ZeroDivisionError - division by zero - line 6
```
在上面的代码中,我们定义了一个 `divide()` 函数来执行两个数字之间的除法运算。在 `try` 块中执行除法运算,如果出现异常,则使用 `sys.exc_info()` 函数获取异常的类型、异常对象和 traceback 对象,并打印出来。
当我们调用 `divide(4, 2)` 时,除法运算成功,返回结果 2.0。但是,当我们调用 `divide(4, 0)` 时,除数为 0,会抛出 `ZeroDivisionError` 异常。程序会捕获该异常并使用 `sys.exc_info()` 函数获取相关信息,最终输出异常的类型、异常对象和发生异常的行号。