在我的webapp中調用R函數時,我想在發生錯誤時捕獲堆棧跟蹤並將其呈現給用戶以進行調試。類似於交互式會話中的輸出traceback()
。然而,traceback
似乎並不被調用時的錯誤處理程序內的工作,它返回No traceback available
:使用tryCatch保存回溯錯誤使用tryCatch
f <- function() {
g <- function() stop("test traceback")
g()
}
errhandler <- function(e){
stacktrace <- traceback()
unlist(stacktrace);
}
out <- tryCatch(f(), error=errhandler)
有什麼辦法,我可以編程捕獲錯誤的堆棧跟蹤?即出現錯誤後手動調用traceback()
時,我會得到的輸出:
f()
traceback()
使用.try_quietly有什麼不好的副作用? –