R executa o código na função quando há um erro de sintaxe e a função não é explicitamente chamada
Isto é interessante. Estou no CentOS 6.9, R-3.4.2. Eu tenho um código,tmp.R
:
main<-function(){
a = 9
print(a) xyz
print("Should never get here")
}
Quando eu corro isso,Rscript tmp.R
, Eu receb
Error: unexpected symbol in:
" a = 9
print(a) xyz"
No traceback available
[1] "Should never get here"
Error: unexpected '}' in "}"
No traceback available
Isso é bastante confuso porque eu nuncana realidad chamadomain()
. De fato, se eu remover o erro de sintaxe (a terceira linha se tornaráprint(a)
), e eu corro, não há saída. Este é o comportamento esperado em minha mente.
QUESTÃ: Por que R executa código em um script quando ocorre um erro de sintaxe, mesmo quando o código não é chamado explicitamente (!
EDITA: Acontece que esse comportamento parece dever-se a teroptions(error=traceback)
sendo definido no meu.Rprofile
. Este é um comportamento indesejável, no entanto. Ainda seria desejável obter tracebacks no modo interativo e não executar essa estranha execução de código no modo não interativ