RStudio переходит в режим отладки для каждой ошибки функции - как я могу ее остановить?

Я много лет использую RStudio, и это никогда не случалось со мной раньше. По какой-то причине каждый раз, когда функция выдает ошибку, RStudio переходит в режим отладки (я не хочу этого). Даже после использования undebug() для одной функции.

> undebug(http.get)
Warning message:
In undebug(fun) : argument is not being debugged
> x = http.get(country = 'KE')

http --timeout=60 get "http://[email protected]/observation?country=KE" > freshobs.json </dev/null
Error in fromJSON(file = "freshobs.json") : unexpected character 'O'

Error in el[["product_name"]] : subscript out of bounds
Called from: grepl(el[["product_name"]], pattern = "json:", fixed = T)
Browse[1]> Q

Любая функция, которую я использую для этого разрыва, вызывает запуск режима отладки - что довольно раздражает, потому что оно открывает средство просмотра источников и уводит вас от вашего кода. Кто-нибудь знает, как остановить эту функциональность? Это происходит, когда флажок "Использовать режим отладки только когда мой код содержит ошибки" в "Предпочтения" установлен и не установлен.

Спасибо!

Ответы

Ответ 1

Я попытался исправить эту проблему, поставив options(error = NULL) в мой .Rprofile, но это не сработало.

Что нужно было сделать в меню "Отладка" → "Об ошибке" и выбрать "Только сообщение" . Это фактически то же самое, что и установка options(error = NULL), но она повторяется при перезапуске.

RStudio menu

Ответ 2

Ну, я думаю, что я это исправил. Не знаю, как это произошло, но в Rstudio, запустив

> options()$error # returned:
 (function () 
{
    .rs.breakOnError(FALSE)
})()

Где, как и в том же, возвращается NULL при запуске R из терминала. → Я побежал:

options(error=NULL)

Это исправляет проблему, но только временно. Когда я уйду и перезапустите Rstudio, код нужно запустить снова. Будет обновляться, когда я найду способ изменить значение по умолчанию... Приветствия.

Ответ 3

I reset мои настройки RStudio Desktop, и проблема исчезла.

Обратите внимание, что возвращаемое значение options()$error после этого reset:

(function () 
{
    .rs.recordTraceback(TRUE, 5, .rs.enqueueError)
})()

Значение перед этим изменением было за комментарий выше