要捕捉异常的行号,可以使用Python的traceback模块。下面是一个示例代码:
import traceback
try:
# 在这里写你的代码
x = 1 / 0
except Exception as e:
# 获取异常的行号
tb = traceback.extract_tb(e.__traceback__)
line_num = tb[-1][1]
print(f"Exception occurred at line {line_num}: {e}")
在这个示例中,我们故意在除法运算中引发了一个异常。然后使用traceback.extract_tb()
函数从异常对象的__traceback__
属性中获取异常的堆栈跟踪信息。extract_tb()
函数返回一个列表,每个元素都是一个包含文件名、行号、函数名和源代码行的元组。我们通过索引[-1][1]
获取最后一个堆栈帧的行号。
最后,我们打印出异常发生的行号和异常信息。
注意:这种方法只能捕捉到发生异常的行号,无法获取到引发异常的具体代码行。如果需要获取引发异常的具体代码行,可以将整个代码块放在一个单独的函数中,并在异常处理代码中打印函数的源代码。
上一篇:捕捉系统快捷键