19

在 Python 世界中,有两个术语似乎是相等的:

  • 堆栈跟踪
  • 追溯

两者有什么区别吗?

4

2 回答 2

10

Stacktrace是方法调用堆栈的跟踪,就像它在执行程序的计算机的内存中一样。所以最近的方法调用在顶部;问题的根源也可能在顶部。几乎所有的编程语言都是这样做的。

Traceback是 Python “发明”的东西:它与上述相反。因此,要找到问题的根源,您需要从底部开始阅读,因为这显然更容易被 pythonists 阅读。为了清楚起见,他们必须指定“最近一次通话最后一次”

将“stacktrace”称为“traceback”是完全错误的:traceback 不是堆栈的跟踪。这是一个反向的堆栈跟踪:并且“返回”可能意味着如此。

在堆栈的顶部,在任何意义上,你都有最近的项目。

于 2020-05-13T17:05:12.197 回答
9

Traceback 是 Python 的惯用术语(例如,traceback 模块),它经常与用于其他语言(如 Java)的 stacktrace 互换使用。

于 2018-01-23T13:45:24.063 回答