При вызове функции R внутри моего webapp я хотел бы поймать трассировку стека при возникновении ошибки и представить ее пользователю для целей отладки. Что-то вроде вывода traceback()
в интерактивном сеансе. Однако, кажется, не работает, когда она вызывается внутри обработчика ошибок traceback
, он возвращает No traceback available
:Сохранить трассировку при ошибке с помощью 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? –