Lever des erreurs avec de mauvais arguments
Si un utilisateur fournit une mauvaise entrée à une fonction, la meilleure chose à faire est de lever une erreur pour l’en informer. Deux règles s’appliquent :
- Levez le message d’erreur dès que vous constatez un problème (généralement au début de la fonction).
- Rédigez un message d’erreur facile à comprendre.
Vous pouvez utiliser les fonctions assert_*() du package assertive pour vérifier les entrées et lever des erreurs lorsqu’elles échouent.
Cet exercice fait partie du cours
Introduction à l’écriture de fonctions en R
Instructions
- 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 cet exemple de code.
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)