Kasta fel vid ogiltiga argument
Om en användare skickar in ett ogiltigt värde till en funktion är det bästa du kan göra att kasta ett fel som förklarar vad som gick fel. Två grundregler gäller:
- Kasta felmeddelandet så snart du upptäcker problemet – vanligtvis i början av funktionen.
- Se till att felmeddelandet är lätt att förstå.
Du kan använda funktionerna assert_*() från assertive för att kontrollera indata och kasta fel när de inte uppfyller kraven.
Den här övningen är en del av kursen
Introduktion till att skriva funktioner i R
Övningsinstruktioner
- Lägg till en rad i kroppen av
calc_harmonic_mean()som kontrollerar attxär numeriskt. - Se vad som händer när du skickar ett teckenargument till
calc_harmonic_mean().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)