Ho scritto uno script R che scrive i messaggi (rapporto di avanzamento) in un file di testo. Ho modificato l'opzione error
in modo che quando si verifica un errore, il messaggio di errore è anche scritto al file:Arresto di uno script R senza ricevere il messaggio "Errore durante wrapup"
options(error = function() {
cat(geterrmessage(),file = normalizePath("logs/messages.txt"),append = TRUE)
stop()
})
Funziona, ma ottengo questo messaggio nella finestra della console/terminale quando si verifica un errore:
Error during wrapup:
Execution halted
Quindi sto pensando che c'è un modo migliore per interrompere l'esecuzione dello script ... o c'è?
Sospetto che sia necessario rimuovere 'stop()' da questo. – Andrie
Quello che succede poi è che se eseguo lo script con Rscript.exe myscript.R, l'errore viene segnalato ma lo script va avanti senza fermarsi. –
Prova a usare q() invece di stop(). Il gestore degli errori viene chiamato usando la funzione stop(), quindi fermarsi dall'interno di stop ... sembra una ricorsione. Questo * potrebbe * essere ciò che è sbagliato. –