เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การโยนข้อผิดพลาดเมื่อได้รับอาร์กิวเมนต์ที่ไม่ถูกต้อง

หากผู้ใช้ป้อนค่าที่ไม่ถูกต้องให้กับฟังก์ชัน วิธีที่ดีที่สุดคือโยนข้อผิดพลาดเพื่อแจ้งให้ทราบ โดยมีหลักการ 2 ข้อ ดังนี้

  1. โยนข้อความแจ้งข้อผิดพลาดทันทีที่พบปัญหา (โดยทั่วไปจะอยู่ที่จุดเริ่มต้นของฟังก์ชัน)
  2. ทำให้ข้อความแจ้งข้อผิดพลาดเข้าใจได้ง่าย

สามารถใช้ฟังก์ชัน assert_*() จากไลบรารี assertive เพื่อตรวจสอบค่าที่รับเข้ามาและโยนข้อผิดพลาดเมื่อการตรวจสอบไม่ผ่าน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Writing Functions in R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่มโค้ดใน body ของ calc_harmonic_mean() เพื่อตรวจสอบว่า x เป็นตัวเลข
  • ลองดูว่าเกิดอะไรขึ้นเมื่อส่งอาร์กิวเมนต์ชนิด character เข้าไปใน 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)
แก้ไขและรันโค้ด