在 Python 世界中,有两个术语似乎是相等的:
- 堆栈跟踪
- 追溯
两者有什么区别吗?
这Stacktrace
是方法调用堆栈的跟踪,就像它在执行程序的计算机的内存中一样。所以最近的方法调用在顶部;问题的根源也可能在顶部。几乎所有的编程语言都是这样做的。
这Traceback
是 Python “发明”的东西:它与上述相反。因此,要找到问题的根源,您需要从底部开始阅读,因为这显然更容易被 pythonists 阅读。为了清楚起见,他们必须指定“最近一次通话最后一次”。
将“stacktrace”称为“traceback”是完全错误的:traceback 不是堆栈的跟踪。这是一个反向的堆栈跟踪:并且“返回”可能意味着如此。
在堆栈的顶部,在任何意义上,你都有最近的项目。
Traceback 是 Python 的惯用术语(例如,traceback 模块),它经常与用于其他语言(如 Java)的 stacktrace 互换使用。