Mojo Academy · บทเรียน

คำอธิบาย raises

ระบุฟังก์ชันที่อาจล้มเหลว

บทเรียน 3 จาก 413 ขั้นตอน

คำอธิบาย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การส่งข้อผิดพลาด
  2. การดักจับด้วย try/except
  3. คำอธิบาย raises
  4. การล้างข้อมูลด้วย finally
← กลับไปที่ Mojo Academy