ส่งต่อความล้มเหลวด้วย try
ส่งต่อข้อผิดพลาดขึ้นไปด้วยคีย์เวิร์ดเดียว
ส่งต่อความล้มเหลวด้วย try เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
การจัดการซ้ำซาก
การเขียน if-else รอบการเรียกที่อาจล้มเหลวทุกครั้งเพื่อส่งต่อข้อผิดพลาดนั้นทำให้โค้ดเยิ่นเย้ออย่างรวดเร็ว Zig จึงมีทางลัดคือคีย์เวิร์ด try
try แกะค่าหรือส่งคืน
วาง try ไว้หน้าการเรียกที่อาจล้มเหลว เมื่อสำเร็จจะส่งค่าให้คุณ เมื่อเกิดข้อผิดพลาดจะส่งคืนข้อผิดพลาดนั้นจากฟังก์ชันปัจจุบัน
const n = try parse(input);เป็นเพียงน้ำตาลทางไวยากรณ์
บรรทัดเดียวนี้ให้ผลเหมือนกับการจับข้อผิดพลาดแล้วส่งคืนด้วยตัวคุณเองทุกประการ try เพียงเขียนโค้ดส่วนซ้ำซากแทนคุณ
const n = parse(input) catch |e| return e;ฟังก์ชันของคุณต้องอาจล้มเหลวได้
เนื่องจาก try สามารถส่งคืนข้อผิดพลาดได้ ฟังก์ชันที่ครอบอยู่จึงต้องมีชนิดค่าที่ส่งคืนเป็นยูเนียนข้อผิดพลาด มิฉะนั้นคอมไพเลอร์จะปฏิเสธ
fn run() !void {
const n = try parse(input);
}เชื่อม try หลายตัว
วางการเรียก try หลายรายการต่อกัน แต่ละรายการจะหยุดฟังก์ชันตั้งแต่ต้นเมื่อเกิดความล้มเหลว ทำให้เส้นทางสำเร็จอ่านจากบนลงล่างได้
const f = try open(path);
const data = try read(f);try ตรงกลางนิพจน์
คุณสามารถวาง try ไว้ภายในนิพจน์ที่ใหญ่กว่าได้โดยตรง ค่าที่แกะแล้วจะไหลเข้าสู่การเรียกหรือการคำนวณรอบข้างทันที
const total = base + try parse(input);try กับการเรียกที่คืนค่า void
แม้การเรียกจะคืนค่า !void ก็ให้ใช้ try เพื่อส่งต่อความล้มเหลว คุณจะไม่ได้ค่ากลับมา มีเพียงการส่งคืนก่อนกำหนดเมื่อเกิดข้อผิดพลาด
try file.writeAll(data);ข้อผิดพลาดไต่ขึ้นตามสแตก
เมื่อใช้ try ในทุกชั้น ความล้มเหลวที่เกิดลึกลงไปจะ แพร่ต่อขึ้นไปจนกว่าผู้เรียกบางรายจะตัดสินใจจัดการกับมัน
เส้นทางสำเร็จที่อ่านง่าย
ประโยชน์สำคัญคือความชัดเจน: การส่งต่อข้อผิดพลาดถูกรวมไว้ในคีย์เวิร์ดเดียว ทำให้ ตรรกะหลักยังคงเด่นชัด
try ไม่ได้จัดการข้อผิดพลาด
จำไว้ว่า try เพียงส่งต่อข้อผิดพลาดเท่านั้น ไม่ได้กู้คืนจากข้อผิดพลาด หากต้องการตอบสนองในจุดนั้น ให้ใช้ catch แทน
ควรส่งต่อเมื่อใด
ใช้ try เมื่อแนวทางที่เหมาะสมคือปล่อยให้ผู้เรียกจัดการความล้มเหลว ฟังก์ชันตัวกลางส่วนใหญ่เพียงส่งต่อข้อผิดพลาดขึ้นไป
ตรวจสอบอย่างรวดเร็ว
คุณเขียน try doThing() ภายในฟังก์ชัน หาก doThing ส่งคืนข้อผิดพลาด จะเกิดอะไรขึ้น
สรุปทบทวน
คุณได้เรียนรู้ว่า try จะแกะค่าเมื่อสำเร็จ และส่งคืนข้อผิดพลาดเมื่อไม่สำเร็จ ซึ่งเป็นรูปแบบย่อของการจับและส่งต่อ ทำให้โค้ดสะอาด ✅
เรียนรู้ Zig ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ส่งต่อความล้มเหลวด้วย try” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ส่งต่อความล้มเหลวด้วย try” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ส่งต่อความล้มเหลวด้วย try”
ส่งต่อข้อผิดพลาดขึ้นไปด้วยคีย์เวิร์ดเดียว คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ส่งต่อความล้มเหลวด้วย try” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชุดข้อผิดพลาดและยูเนียน !T
- คืนข้อผิดพลาดจากฟังก์ชัน
- ส่งต่อความล้มเหลวด้วย try
- ชุดข้อผิดพลาดที่อนุมาน