Lançando erros com argumentos inválidos
Se um usuário fornecer uma entrada inadequada para uma função, a melhor atitude é lançar um erro avisando-o. As duas regras são:
- Lance a mensagem de erro assim que perceber que há um problema (normalmente no início da função).
- Torne a mensagem de erro fácil de entender.
Você pode usar as funções assert_*() do assertive para verificar as entradas e lançar erros quando elas falharem.
Este exercício faz parte do curso
Introdução à Escrita de Funções em R
Instruções do exercício
- Adicione uma linha ao corpo de
calc_harmonic_mean()para garantir quexseja numérico. - Veja o que acontece quando você passa um argumento de texto (caractere) para
calc_harmonic_mean().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)