0Pricing
Swift Academy · บทเรียน

do/catch และการกำหนดข้อผิดพลาด (เอนัม)

กำหนดเอนัมข้อผิดพลาด โยนข้อผิดพลาดจากฟังก์ชัน และจัดการความล้มเหลวด้วยรูปแบบ do/catch (กรณีเฉพาะ catch let และ catch ทั่วไป)

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

ภาพรวม

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

ชนิดแจกแจงข้อผิดพลาด

กำหนดชนิดชนิดแจกแจงแบบกำหนดเองที่สอดคล้องกับ Error ค่าที่เชื่อมโยงช่วยเพิ่มบริบทที่เป็นประโยชน์

enum FileError: Error {
    case notFound(path: String)
    case unreadable(path: String)
    case corrupted
}
print("Defined FileError enum")

พื้นฐานการโยนข้อผิดพลาด

ระบุฟังก์ชันที่อาจล้มเหลวด้วย การโยนข้อผิดพลาด โยนกรณีเฉพาะเมื่อเงื่อนไขเบื้องต้นไม่ผ่าน

func loadText(from path: String) throws -> String {
    if path.isEmpty { throw FileError.notFound(path: "(empty)") }
    if !path.hasSuffix(".txt") { throw FileError.unreadable(path: path) }
    return "Contents of " + path
}
print("Ready to throw on bad input")

การจับข้อผิดพลาดเฉพาะ

ใช้ การทำ/ลอง/จับ วางกรณี จับ ที่เฉพาะเจาะจงไว้ก่อน แล้วจึงใช้การจับทั่วไปสำหรับกรณีที่เหลือ

do {
    let text = try loadText(from: "notes.txt")
    print(text)
} catch FileError.notFound(let p) {
    print("Missing file at:", p)
} catch FileError.unreadable(let p) {
    print("Cannot read:", p)
} catch {
    print("Other error:", error)
}

จับค่าและเลือกกรณี

ใช้ จับค่าข้อผิดพลาดเป็น YourError จากนั้นใช้ switch เพื่อจัดรูปแบบข้อความที่เป็นมิตรต่อผู้ใช้

do {
    _ = try loadText(from: "")
} catch let error as FileError {
    switch error {
    case .notFound(let p): print("not found:", p)
    case .unreadable(let p): print("unreadable:", p)
    case .corrupted: print("file corrupted")
    }
} catch {
    print("unexpected:", error.localizedDescription)
}

กู้คืนเทียบกับโยนต่อ

ตัดสินใจว่าจะกู้คืนโดยคืนค่าทดแทน หรือโยนต่อให้ผู้เรียก ใช้กฎที่เรียบง่ายและคาดเดาได้

func mustLoad(_ path: String) throws -> String {
    do {
        return try loadText(from: path)
    } catch FileError.notFound {
        // simple recovery: default content
        return "New file template"
    } catch {
        // escalate unknown issues
        throw error
    }
}
print(try? mustLoad("report.txt") ?? "(nil)")

รูปแบบข้อผิดพลาดแบบกำหนดเอง

ตรวจสอบอย่างรวดเร็ว: วิธีที่เป็นรูปแบบมาตรฐานในการกำหนดข้อผิดพลาดแบบกำหนดเองคืออะไร

สรุปทบทวน

สรุปทบทวน: กำหนดข้อผิดพลาดแบบมีชนิดด้วยชนิดแจกแจงที่สอดคล้องกับ ข้อผิดพลาด โยนกรณีที่แม่นยำ และจัดการผ่าน การทำ/จับ โดยวางแขนงเฉพาะไว้ก่อนและกรณีทั่วไปไว้ท้ายสุด

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

บทเรียน “do/catch และการกำหนดข้อผิดพลาด (เอนัม)” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “do/catch และการกำหนดข้อผิดพลาด (เอนัม)”

กำหนดเอนัมข้อผิดพลาด โยนข้อผิดพลาดจากฟังก์ชัน และจัดการความล้มเหลวด้วยรูปแบบ do/catch (กรณีเฉพาะ catch let และ catch ทั่วไป) คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “do/catch และการกำหนดข้อผิดพลาด (เอนัม)” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด
  2. do/catch และการกำหนดข้อผิดพลาด (เอนัม)
  3. ชนิด Result — Result
← กลับไปที่ Swift Academy