Когда я использую tryCatch
, я могу определить обработчик ошибок и использовать conditionCall
для определения вызова, вызвавшего ошибку. Например,Получить вызов ошибок на верхнем уровне?
tryCatch(
eval(parse(text="prnit('Hello')")),
error=function(e) {
cl <- conditionCall(e)
#...
})
Могу ли я получить плохой вызов в строке R? До сих пор я нашел только это решение:
> err_hdl <- function() {
file1 <- tempfile("Rrawhist")
savehistory(file1)
rawhist <- readLines(file1)
unlink(file1)
cat("Error : ", tail(rawhist,1), "\n")
return(TRUE)
}
> options(error=err_hdl)
> prnit("Hello")
, но я считаю, что должен быть более простой способ ..
Любой намек оценил!
Я потушил щедрость. Первый ответ, который реализует поведение функции err_hdl
выше, без ввода ввода/вывода, независимого от платформы, будет принят.
Редактировать - приведенный выше код, похоже, работает только на окнах. Я ищу вход, который поднял ошибку.
В первом примере ошибки не существует. – kohske
В первом примере вы имели в виду нечто большее, не так ли? 'tryCatch ( eval (parse (text = prnit ('Hello'))), error = function (e) {conditionCall (e)})' –
@Josh O'Brien Да, вы правы. Изменил вопрос. –