从生产OCaml代码堆栈跟踪?

时间:2015-06-29 20:35:40

标签: ocaml production-environment traceback debug-information

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

Can I make OCaml produce stack traces on uncaught exceptions?

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

1 个答案:

答案 0 :(得分:-1)

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

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

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

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

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