คำอธิบาย raises
ระบุฟังก์ชันที่อาจล้มเหลว
คำอธิบาย raises เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
ระบุความล้มเหลวอย่างตรงไปตรงมา
Mojo ต้องการให้ฟังก์ชันระบุอย่างชัดเจนว่าฟังก์ชันอาจล้มเหลวหรือไม่ คีย์เวิร์ด raises ใช้ทำเครื่องหมายฟังก์ชันที่อาจทำให้เกิดข้อผิดพลาด 📣
การเพิ่ม raises
วาง raises ไว้ทันทีหลังรายการอาร์กิวเมนต์ เพื่อบอกผู้เรียกว่าฟังก์ชันนี้อาจทำงานไม่สำเร็จเสมอไป
fn parse(text: String) raises -> Int:
...def สามารถทำให้เกิดข้อผิดพลาดได้เสมอ
ฟังก์ชัน def ที่ยืดหยุ่นอาจทำให้เกิดข้อผิดพลาดได้โดยไม่ต้องมีคำกำกับ Mojo ถือว่า def สามารถล้มเหลวได้เป็นค่าเริ่มต้น
def load(name: String):
raise Error("missing")fn ต้องประกาศให้ชัดเจน
ฟังก์ชัน fn ที่เข้มงวดไม่สามารถทำให้เกิดข้อผิดพลาดได้ เว้นแต่คุณจะเพิ่ม raises ทำให้ความล้มเหลวระบุไว้อย่างชัดเจนและสังเกตได้ง่าย
fn safe(x: Int) -> Int:
return x + 1การเรียกฟังก์ชันที่อาจทำให้เกิดข้อผิดพลาด
การเรียกสิ่งที่มีเครื่องหมาย raises หมายความว่าคุณต้องจัดการข้อผิดพลาด โดยปกติจะทำภายในบล็อก try
try:
var n = parse("42")
except e:
print(e)ข้อผิดพลาดส่งต่อผ่าน raises
หากเรียกฟังก์ชันที่อาจทำให้เกิดข้อผิดพลาดจากภายในฟังก์ชัน raises อื่น ข้อผิดพลาดจะถูกส่งต่อขึ้นไปโดยไม่ต้องใช้ try
ไม่มี raises หมายถึงปลอดภัย
ฟังก์ชันที่ไม่มี raises รับรองว่าจะไม่ทำให้เกิดข้อผิดพลาด ผู้เรียกจึงใช้งานได้อย่างอิสระโดยไม่ต้องใช้บล็อก try
คอมไพเลอร์ตรวจสอบให้คุณ
คอมไพเลอร์ ของ Mojo จะปฏิเสธการทำให้เกิดข้อผิดพลาดภายใน fn ที่ไม่ประกาศการทำให้เกิดข้อผิดพลาด การตรวจสอบนี้จับความไม่สอดคล้องได้ก่อนที่โปรแกรมจะเริ่มทำงาน
โค้ดที่อธิบายตัวเอง
คีย์เวิร์ด raises ทำหน้าที่เป็นเอกสารประกอบที่อยู่ในโค้ด เพียงมองลายเซ็นก็รู้ได้ว่าการเรียกนั้นอาจล้มเหลวหรือไม่
ทำให้ส่วนติดต่อมีขนาดเล็ก
ทำเครื่องหมาย raises เฉพาะฟังก์ชันที่ล้มเหลวได้จริงเท่านั้น ยิ่งมีฟังก์ชันที่อาจล้มเหลวน้อย จุดเรียกใช้ก็ยิ่งเรียบง่ายและปลอดภัย
raises และชนิดค่าที่ส่งคืน
คุณสามารถใช้ raises ร่วมกับชนิดค่าที่ส่งคืนตามปกติ ฟังก์ชันจะส่งคืนค่าเมื่อสำเร็จ หรือทำให้เกิดข้อผิดพลาดเมื่อล้มเหลว
fn divide(a: Int, b: Int) raises -> Int:
if b == 0:
raise Error("divide by zero")
return a // bตรวจสอบอย่างรวดเร็ว
ลองคิดว่า fn และคีย์เวิร์ด raises ทำงานร่วมกันอย่างไร
สรุปทบทวน
คุณได้เรียนรู้ว่า raises ประกาศว่าฟังก์ชันอาจล้มเหลว def สามารถทำให้เกิดข้อผิดพลาดได้เสมอ ขณะที่ fn ต้องประกาศเพิ่ม และคอมไพเลอร์จะบังคับใช้กฎนี้ 🎯
เรียนรู้ Mojo ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “คำอธิบาย raises” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คำอธิบาย raises” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คำอธิบาย raises”
ระบุฟังก์ชันที่อาจล้มเหลว คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “คำอธิบาย raises” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม
ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ