2024-04-25 22:21:28 发布
网友
要获取stacktrace,我使用:
except: import traceback print(traceback.format_exec())
我可以不使用回溯从异常中获取stacktrace吗?例如:
except Exception as e: print(e) print(e.traceback) #is there command like this?
您需要traceback。您可以将它与e一起使用。您应该在代码开始时导入它,而不需要每次发生异常时都导入它
traceback
e
import traceback try: ... except Exception as e: tb = traceback.format_exc() print(e) print(tb)
使用回溯模块-可在此处找到更多信息: https://docs.python.org/3/library/traceback.html
except Exception as e: print(e) traceback.print_exc(file=sys.stdout)
或者先将其保存为变量,如下所示:
except Exception as e: print(e) st = traceback.format_stack() print(st)
如果不使用回溯模块,我们应该能够使用sys.exc_info获得更多详细信息。这将返回包含回溯信息的元组:
try: ... except Exception as e: tb = sys.exec_info()[2] ...
回溯对象包含有关发生错误的堆栈帧和行号的信息
这就是追踪在引擎盖下的用途
您需要
traceback
。您可以将它与e
一起使用。您应该在代码开始时导入它,而不需要每次发生异常时都导入它使用回溯模块-可在此处找到更多信息: https://docs.python.org/3/library/traceback.html
或者先将其保存为变量,如下所示:
如果不使用回溯模块,我们应该能够使用sys.exc_info获得更多详细信息。这将返回包含回溯信息的元组:
回溯对象包含有关发生错误的堆栈帧和行号的信息
这就是追踪在引擎盖下的用途
相关问题 更多 >
编程相关推荐