Générer des erreurs avec de mauvais arguments
Si une personne utilisatrice fournit une mauvaise entrée à une fonction, la meilleure chose à faire est de générer une erreur pour l'en informer. Deux règles s'appliquent :
- Générer le message d'erreur dès que vous constatez un problème (généralement au début de la fonction).
- Rendre le message d'erreur facile à comprendre.
Vous pouvez utiliser les fonctions assert_*() du paquet assertive pour valider les entrées et générer des erreurs lorsqu'elles échouent.
Cette activité fait partie du cours
Introduction à l'écriture de fonctions en R
Instructions de l’exercice
- Ajoutez une ligne dans le corps de
calc_harmonic_mean()pour vérifier quexest numérique. - Observez ce qui se passe lorsque vous passez un argument de type caractère à
calc_harmonic_mean().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)