J'ai lu quelques autres questions SO sur tryCatch
et cuzzins, ainsi que la documentation :
- Gestion des exceptions en R
- attraper une erreur puis définir une logique de branchements
- Comment puis-je vérifier si un appel de fonction génère un avertissement ?
- Problèmes avec les tracés dans une boucle
mais je ne comprends toujours pas.
Je lance une boucle et je veux passer à next
si certains types d'erreurs surviennent :
for (i in 1:39487) {
# GESTION DES EXCEPTIONS
this.could.go.wrong <- tryCatch(
attemptsomething(),
error=function(e) next
)
so.could.this <- tryCatch(
doesthisfail(),
error=function(e) next
)
catch.all.errors <- function() { this.could.go.wrong; so.could.this; }
catch.all.errors;
#TRAVAIL RÉEL
utile(i); amusant(i); bon(i);
} #fin de la boucle
(au fait, je ne trouve aucune documentation sur next
)
Lorsque j'exécute cela, R
klaxonne :
Erreur dans value[[3L]](cond) : aucune boucle pour break/next, sautant au niveau supérieur
Quel point de base me manque-t-il ici ? Les tryCatch
sont clairement dans la boucle for
, alors pourquoi R
ne le sait-il pas ?