Получить вызов об ошибках на верхнем уровне?

Когда я использую 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выше без файлового ввода-вывода, который не зависит от платформы.

Отредактируйте --приведенный выше код, похоже, работает только в Windows. Я ищу ввод, который вызвал ошибку.

7
задан Karsten W. 8 July 2012 в 16:42
поделиться