0

这解释了如何获取未捕获异常的堆栈跟踪:

我可以让 OCaml 对未捕获的异常产生堆栈跟踪吗?

在生产代码中这样做是否可行?更有用的是,记录未处理的异常并继续(例如,如果在 Web 系统中使用其他 Web 请求)是否可行?

4

1 回答 1

-1

很难回答你的问题,可能是因为没有足够的细节。

在(未指定的)未捕获异常后恢复的问题在于,不清楚您的进程上下文中有多少仍然是好的。对我来说,让您的流程失败(并退出)并让更高级别的控制流程启动一个新的流程似乎要好得多。

如果您不希望这些失败以任何频率发生(我希望是这种情况),那么这比继续在原始过程中进行工作要慢一点并不重要。

如果你这样做了,那么堆栈跟踪只会转到失败进程的标准错误。控制进程可以抓取它并将其很好地打包到日志中。

我已经构建了这样的系统(不是在 OCaml 中)并且它们运行良好。它们对您的效果如何取决于许多因素,因此我只能建议值得考虑。

于 2015-06-30T02:30:25.570 回答