Melempar error untuk argumen yang buruk
Jika pengguna memberikan masukan yang tidak valid ke suatu fungsi, langkah terbaik adalah melempar error untuk memberi tahu mereka. Dua aturannya adalah:
- Lempar pesan error segera setelah Anda menyadari ada masalah (biasanya di awal fungsi).
- Buat pesan error mudah dipahami.
Anda dapat menggunakan fungsi assert_*() dari assertive untuk memeriksa masukan dan melempar error ketika pemeriksaan gagal.
Latihan ini adalah bagian dari kursus
Pengantar Penulisan Fungsi di R
Petunjuk latihan
- Tambahkan satu baris ke badan
calc_harmonic_mean()untuk memastikan bahwaxbertipe numerik. - Perhatikan apa yang terjadi ketika Anda meneruskan argumen karakter ke
calc_harmonic_mean().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)