以錯誤訊息處理不當引數
如果使用者提供了不當的輸入,最好的作法是拋出錯誤並說明原因。有兩個原則:
- 一發現有問題就立刻拋出錯誤訊息(通常在函式一開始)。
- 讓錯誤訊息容易理解。
你可以使用 assertive 中的 assert_*() 函式來檢查輸入,並在檢查失敗時拋出錯誤。
本練習屬於課程
R 函式撰寫入門
練習說明
- 在
calc_harmonic_mean()的本體中新增一行程式碼,斷言x為數值。 - 觀察當你將字元型別的引數傳給
calc_harmonic_mean()時,會發生什麼事。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)