Sto scrivendo un test case per una funzione R che verifica se un errore viene lanciato e rilevato correttamente in un determinato punto della funzione e sto avendo alcuni problemi nel portare il test a continuare quando viene generato un errore durante l'esecuzione inCallingHandlers (...). Sto usando questo approccio:Come continuare la funzione quando viene generato un errore con CallingHandlers in R
counter <- 0
withCallingHandlers({
testingFunction(df0, df1)
testingFunction(df2, df3)
testingFunction(df4, df5)
}, warning=function(war){
print(paste(war$message))
}, error=function(err){
print(paste(err$message))
if(err$message == paste("The function should throw this error message",
"at the right time.")){
counter <<- counter + 1
}
})
stopifnot(counter == 2)
Il problema che sto funzionando in è che lo script sta uscendo dopo il primo errore è (con successo) catturati e io non sono sicuro di come gestire l'errore in modo che dopo viene catturato, con CallingHandlers continua semplicemente nella parte successiva della sua esecuzione. Capisco che abbia qualcosa a che fare con un oggetto di riavvio, ma non sono sicuro di come usarli correttamente. Qualcuno sa come posso manipolare il codice di cui sopra in modo che l'esecuzione di withCallingHandlers (...) continui anche quando viene rilevato un errore?
Impressionante, grazie mille. – Decave