ComeçarComece de graça

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:

  1. Lance a mensagem de erro assim que perceber que há um problema (normalmente no início da função).
  2. 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

Ver curso

Instruções do exercício

  • Adicione uma linha ao corpo de calc_harmonic_mean() para garantir que x seja 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)
Editar e executar o código