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)
})()
Значение перед этим изменением было за комментарий выше