การส่งข้อผิดพลาด
ส่งสัญญาณว่ามีบางอย่างผิดพลาด
การส่งข้อผิดพลาด เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
เมื่อเกิดข้อผิดพลาด
บางครั้งฟังก์ชันพบสถานการณ์ที่จัดการไม่ได้ เช่น ไฟล์หายไปหรืออินพุตไม่ถูกต้อง Mojo ให้คุณส่งสัญญาณด้วย ข้อผิดพลาด ⚠️
คีย์เวิร์ด raise
หากต้องการส่งสัญญาณว่าการทำงานล้มเหลว ให้ใช้คีย์เวิร์ด raise ซึ่งจะหยุดงานปัจจุบันและรายงานว่ามีบางอย่างผิดพลาด
raise Error("something went wrong")ข้อผิดพลาดมีข้อความกำกับ
เมื่อใช้ raise คุณจะส่ง ข้อความสั้น ๆ ที่อธิบายปัญหาไปด้วย ผู้ที่จัดการข้อผิดพลาดจะอ่านข้อความนั้นได้
raise Error("file not found")ใช้ raise ภายในฟังก์ชัน
ฟังก์ชันสามารถ raise ได้เมื่ออินพุตไม่ถูกต้อง ในที่นี้จำนวนติดลบจะถูกปฏิเสธก่อนเริ่มทำงานส่วนถัดไป
fn withdraw(amount: Int) raises:
if amount < 0:
raise Error("amount must be positive")raise หยุดการทำงาน
เมื่อ raise ทำงาน ส่วนที่เหลือของฟังก์ชันจะถูกข้าม การควบคุมจะออกจากฟังก์ชันเพื่อค้นหาโค้ดที่จัดการข้อผิดพลาดได้
ทำไมไม่คืนค่า -1 ไปเลย
การคืนค่าพิเศษอย่าง -1 อาจถูกมองข้ามได้ง่าย แต่ ข้อผิดพลาดไม่สามารถถูกข้ามอย่างเงียบ ๆ ทำให้สังเกตเห็นความล้มเหลวได้ยากน้อยลงมาก
ข้อผิดพลาดส่งต่อขึ้นไป
ข้อผิดพลาดที่ยังไม่ได้จัดการจะเคลื่อนย้อนขึ้นไปผ่านฟังก์ชันผู้เรียกจนกว่าจะมีบางส่วนดักจับไว้ กระบวนการนี้เรียกว่า การส่งต่อ
ตรวจสอบอินพุต
การใช้ raise ตั้งแต่เนิ่น ๆ เมื่ออินพุตไม่ถูกต้องเป็นแนวทางที่ดี ตรวจสอบค่าก่อน แล้วจึง raise ก่อนที่ตรรกะหลักจะเริ่มทำงาน
if name == "":
raise Error("name is required")เหตุผลที่ชัดเจนเพียงหนึ่งเดียว
ให้ raise แต่ละจุดมีข้อความที่ชัดเจนและเฉพาะเจาะจง การใช้ถ้อยคำที่ดีจะเปลี่ยนการหยุดทำงานให้เป็นเบาะแสที่มีประโยชน์สำหรับผู้แก้ไขข้อผิดพลาด
ข้อผิดพลาดไม่ใช่การหยุดทำงานแบบไร้การควบคุม
ข้อผิดพลาดที่ถูกส่งออกมาคือสัญญาณที่มีโครงสร้าง ไม่ใช่การหยุดทำงานแบบสุ่ม โปรแกรมของคุณจึงกู้คืนจากข้อผิดพลาดได้แทนที่จะจบการทำงานทันที
ใช้ raise เมื่อทำงานต่อไม่ได้
หลักง่าย ๆ คือ ให้ raise เฉพาะเมื่อฟังก์ชันไม่สามารถทำงานให้เสร็จอย่างถูกต้องได้จริง ๆ อย่าใช้ raise กับผลลัพธ์ปกติ
ตรวจสอบความเข้าใจ
ลองคิดดูว่าคีย์เวิร์ด raise ทำอะไรจริง ๆ ใน Mojo
ทบทวน
คุณได้เรียนรู้วิธีส่งสัญญาณความล้มเหลวด้วย raise การแนบข้อความที่ชัดเจน และการให้ข้อผิดพลาดหยุดการทำงานที่ไม่ถูกต้อง แทนการคืนค่าพิเศษ 🎯
คำถามที่พบบ่อย
บทเรียน “การส่งข้อผิดพลาด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การส่งข้อผิดพลาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การส่งข้อผิดพลาด”
ส่งสัญญาณว่ามีบางอย่างผิดพลาด คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การส่งข้อผิดพลาด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม
ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การส่งข้อผิดพลาด
- การดักจับด้วย try/except
- คำอธิบาย raises
- การล้างข้อมูลด้วย finally