0

這就解釋瞭如何獲得捕獲的異常堆棧跟蹤:來自生產OCaml代碼的堆棧跟蹤?

Can I make OCaml produce stack traces on uncaught exceptions?

是否可行做,在生產代碼?更有用的是,記錄未處理的異常並繼續(例如,如果是在Web系統中的其他web請求)是可行的嗎?

+1

你的意思是否可行?就像表演點擊一樣? –

+0

從我的立場(無知)來看,這可能有多種原因,它不是一個好主意,所以我不想猜猜它們是什麼! :-)但是,糟糕的表現是我想到的一件事情。 –

+1

您是否期望每隔幾分鐘就會有超過1次未捕獲的異常?如果不是,那麼我認爲性能不是你最關心的問題。 –

回答

-1

很難回答你的問題,可能是因爲沒有足夠的細節。

在(未指定的)未捕獲的異常之後恢復的問題是不清楚您的流程上下文有多少依然是好的。對我來說,讓自己的流程失敗(退出)並讓更高層次的控制流程啓動一個新的流程似乎好得多。

如果你不希望這些故障發生在任何頻率下(我希望是這種情況),這應該不會太重要,因爲這比繼續在原始過程中工作要慢。

如果你這樣做,那麼堆棧跟蹤將會轉到失敗進程的標準錯誤。控制過程可以抓住它並很好地將其打包到日誌中。

我已經構建了這樣的系統(不在OCaml中),並且它們運行良好。他們對你的工作能力取決於很多因素,所以我只能說這是值得思考的。

+0

啊,所以沒有具體的OCaml經驗?這真是我在這裏感興趣的部分。我也有構建這樣工作的系統,只是不在OCaml中:-)我並不是很清楚,-g構建 - 它似乎是獲得回溯所需要的 - 適合在生產中使用(但我' m對這裏的調試版本沒有特別的興趣,而是在日誌回溯中 - 調試版本只是提示了這個問題) –

+0

你應該做一些測量。折騰觀點並不是特別有用。 –

+0

測量什麼?我的問題的目的是從OCaml社區獲取關於這是OCaml世界中的一個模糊的明智事情,而不是專門的表現。沒有測量會告訴我這一點。 –