Zig Academy · บทเรียน

กู้คืนด้วย catch

จัดเตรียมทางเลือกสำรองเมื่อเกิดข้อผิดพลาด

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

กู้คืนด้วย catch เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

ข้อผิดพลาดต้องมีแผนรับมือ

ฟังก์ชันสามารถส่งคืนยูเนียนข้อผิดพลาด เช่น !u32 ได้ ก่อนใช้ผลลัพธ์ คุณต้องตัดสินใจก่อนว่าจะทำอย่างไรเมื่อเกิด ความล้มเหลว

ทำความรู้จัก catch

ตัวดำเนินการ catch เปลี่ยนยูเนียนข้อผิดพลาดให้เป็นค่าแบบปกติ โดยกำหนดค่าเผื่อที่จะใช้ทุกครั้งที่การเรียกใช้ส่งคืนข้อผิดพลาด

const n = parse(text) catch 0;

ค่าเผื่อจะแทนที่ข้อผิดพลาด

หากการเรียกใช้สำเร็จ คุณจะได้ค่าจริง หากเกิดข้อผิดพลาด คุณจะได้ด้านขวาของ catch แทน ดังนั้น n จึงเป็นตัวเลขที่ใช้งานได้เสมอ

const n = parse(text) catch -1;

catch เป็นนิพจน์

เนื่องจาก catch ให้ผลลัพธ์เป็นค่า คุณจึงวางไว้ในบรรทัดใดก็ได้ที่ต้องการค่า เช่น ใส่ตรงเข้าไปเป็นอาร์กิวเมนต์ของฟังก์ชัน

print(parse(text) catch 0);

เก็บข้อผิดพลาดไว้ตรวจสอบ

เพิ่มการเก็บค่าด้วยไปป์เพื่อดูว่าเกิดอะไรผิดพลาด ชื่อที่อยู่ระหว่างแถบจะเก็บค่า ข้อผิดพลาด เฉพาะที่ถูกส่งคืน

const n = parse(text) catch |err| {
    log(err);
    return 0;
};

catch เรียกใช้บล็อกได้

ด้านขวาของ catch อาจเป็นบล็อกทั้งบล็อกได้ ใช้เพื่อบันทึกข้อมูล คำนวณค่าเผื่อ หรือออกจากลูปก่อนดำเนินการต่อ

const v = open(path) catch |e| blk: {
    break :blk fallback;
};

catch ส่งคืนก่อนกำหนดได้

คุณสามารถใช้ return ภายใน catch เพื่อออกจากฟังก์ชันเมื่อไม่สามารถกู้คืนได้ โค้ดหลังจากนั้นจะไม่ทำงานเมื่อเกิดข้อผิดพลาด

const f = open(path) catch return error.MissingFile;

catch unreachable

การเขียน catch unreachable เป็นการยืนยันว่าการเรียกใช้นั้นไม่สามารถล้มเหลวได้ ในบิลด์แบบปลอดภัย หากเกิดข้อผิดพลาดจริงตรงนี้ โปรแกรมจะตื่นตระหนกแทนที่จะถูกละเลย

const n = parse("42") catch unreachable;

ใช้ unreachable อย่างระมัดระวัง

ใช้ catch unreachable เฉพาะเมื่อข้อผิดพลาดเป็นสิ่งที่เกิดขึ้นไม่ได้จริง ๆ หากไม่แน่ใจ ให้ระบุค่าเผื่อที่ใช้งานได้จริงแทน

catch เทียบกับ try

ใช้ catch เมื่อคุณจัดการข้อผิดพลาดได้ตรงจุดนั้น ใช้ try เมื่อคุณต้องการส่งต่อข้อผิดพลาดขึ้นไปยังผู้เรียก

การกู้คืนต้องระบุอย่างชัดเจน

ยูเนียนข้อผิดพลาดทุกตัวบังคับให้เลือกทางใดทางหนึ่ง ดังนั้นความล้มเหลวจึงไม่มีทางถูกละทิ้งโดยไม่รู้ตัว เมื่อใช้ catch คุณจะกำหนดได้อย่างชัดเจนว่าจะกู้คืนอย่างไร

ตรวจสอบอย่างรวดเร็ว

คุณต้องการดำเนินการต่อด้วยค่าเริ่มต้นที่ปลอดภัยเมื่อการเรียกใช้ล้มเหลว ควรใช้นิพจน์ใด

สรุป

คุณใช้ catch เพื่อกู้คืนจากข้อผิดพลาดด้วยค่าเผื่อ บล็อก การส่งคืนก่อนกำหนด หรือการยืนยัน ความล้มเหลวจะได้รับการจัดการโดยตั้งใจเสมอ ✅

เริ่มต้นได้ฟรี

เรียนรู้ Zig ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “กู้คืนด้วย catch” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กู้คืนด้วย catch” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กู้คืนด้วย catch”

จัดเตรียมทางเลือกสำรองเมื่อเกิดข้อผิดพลาด คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “กู้คืนด้วย catch” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม

ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. กู้คืนด้วย catch
  2. เลือกตามข้อผิดพลาดเฉพาะ
  3. errdefer สำหรับการล้างข้อมูลเมื่อเกิดความล้มเหลว
  4. ห่อและส่งข้อผิดพลาดต่อ
← กลับไปที่ Zig Academy