R vous permet de définir un gestionnaire de conditions
x <- tryCatch({
warning("oops")
}, warning=function(w) {
## do something about the warning, maybe return 'NA'
message("handling warning: ", conditionMessage(w))
NA
})
qui se traduit par
handling warning: oops
> x
[1] NA
L'exécution se poursuit après tryCatch ; vous pouvez décider de terminer en convertissant votre avertissement en erreur
x <- tryCatch({
warning("oops")
}, warning=function(w) {
stop("converted from warning: ", conditionMessage(w))
})
ou traiter la condition de manière gracieuse (en poursuivant l'évaluation après l'appel d'avertissement)
withCallingHandlers({
warning("oops")
1
}, warning=function(w) {
message("handled warning: ", conditionMessage(w))
invokeRestart("muffleWarning")
})
qui imprime
handled warning: oops
[1] 1