Web アプリケーション内で R 関数を呼び出すときに、エラーが発生したときにスタック トレースをキャッチし、デバッグ目的でユーザーに提示したいと考えています。traceback()
対話型セッションでの出力のようなもの。ただし、traceback
エラーハンドラー内で呼び出された場合は機能しないようです。次を返しますNo traceback available
。
f <- function() {
g <- function() stop("test traceback")
g()
}
errhandler <- function(e){
stacktrace <- traceback()
unlist(stacktrace);
}
out <- tryCatch(f(), error=errhandler)
プログラムでエラーのスタック トレースをキャッチする方法はありますか? traceback()
つまり、エラーの後に手動で呼び出したときに得られる出力を取得します。
f()
traceback()