Fouten genereren bij ongeldige argumenten
Als een gebruiker een ongeldige invoer aan een functie geeft, kun je het beste een fout genereren om dat duidelijk te maken. De twee regels zijn:
- Gooi de foutmelding zodra je merkt dat er een probleem is (meestal aan het begin van de functie).
- Maak de foutmelding makkelijk te begrijpen.
Je kunt de assert_*()-functies uit assertive gebruiken om invoer te controleren en fouten te gooien als die controles mislukken.
Deze oefening maakt deel uit van de cursus
Introductie tot functies schrijven in R
Oefeninstructies
- Voeg een regel toe aan de body van
calc_harmonic_mean()om te controleren datxnumeriek is. - Kijk wat er gebeurt als je een character-argument doorgeeft aan
calc_harmonic_mean().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)