Это интересно.Я на CentOS 6.9, R-3.4.2.У меня есть код, tmp.R
:
main<-function(){
a = 9
print(a) xyz
print("Should never get here")
}
Когда я запускаю это, Rscript tmp.R
, я получаю
Error: unexpected symbol in:
" a = 9
print(a) xyz"
No traceback available
[1] "Should never get here"
Error: unexpected '}' in "}"
No traceback available
Это довольно запутанно, потому что я никогда на самом деле называется main()
.Фактически, если я удаляю синтаксическую ошибку (3-я строка становится print(a)
), и я запускаю ее, вывод не производится.Это ожидаемое поведение в моей голове.
ВОПРОС : Почему R выполняет код в скрипте, когда возникает синтаксическая ошибка, даже если код явно не вызывается (!)?
РЕДАКТИРОВАТЬ : Оказывается, такое поведение, по-видимому, связано с установкой options(error=traceback)
в моем .Rprofile
.Тем не менее, это нежелательное поведение.Тем не менее, было бы желательно иметь возможность получать трассировки в интерактивном режиме и не выполнять это странное выполнение кода в неинтерактивном режиме.