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

การจัดการข้อผิดพลาด

การจัดการข้อผิดพลาด

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

บทนำ

สวัสดีครับ/ค่ะ

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

เราสามารถใช้การจัดการข้อผิดพลาดระหว่างการระบุและควบคุมข้อผิดพลาดที่เกิดขึ้นได้

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

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

ข้อผิดพลาดบางอย่างอาจเกิดจากข้อผิดพลาดทางตรรกะในโค้ดของผู้พัฒนาซอฟต์แวร์ ตัวอย่างเช่น แอปพลิเคชันจะโยนข้อผิดพลาดเมื่อเราบังคับแกะห่อค่าออปชันนัลที่ได้เรียนรู้ในหัวข้อก่อนหน้านี้

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

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

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

enum CreditCardError: Error {
    case insufficientFunds
    case issuerDeclined
    case invalidCVC
}

คีย์เวิร์ด throws

หากเมธอดที่เราเขียนสามารถทำให้เกิดข้อผิดพลาดได้ จะต้องเพิ่มคีย์เวิร์ด throws ในคำจำกัดความของเมธอด

ด้านล่างเป็นตัวอย่างไวยากรณ์

func processPayment(creditcard: String) throws {
}

คีย์เวิร์ด throw

บางครั้งขณะที่เขียนโค้ด ผู้พัฒนาซอฟต์แวร์อาจจำเป็นต้องโยนข้อผิดพลาด

ลองจินตนาการดูว่า เรากำลังเขียนระบบชำระเงินให้ธนาคาร 

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

throw CreditCardError.insufficientFunds

บล็อก do-catch

บล็อก do-catch

เมื่อเราต้องการใช้เมธอดที่อาจทำให้เกิดข้อผิดพลาดในแอปพลิเคชัน เราสามารถจับข้อผิดพลาดที่อาจเกิดขึ้นได้โดยนำโค้ดเหล่านี้ไปไว้ในบล็อก do-catch

โค้ดที่อาจทำให้เกิดข้อผิดพลาดจะอยู่ในบล็อก do ส่วนข้อผิดพลาดที่อาจเกิดขึ้นจะถูกจับไว้ในบล็อก catch

ลองดูตัวอย่างด้านล่าง

do {
   //Code block that may throw an Error
}
catch let error {
    print(error)
}

ไวยากรณ์ try

นอกจากคีย์เวิร์ด try แล้ว เรายังมีการใช้งาน try! หรือ try? ด้วย 

ลองดูตัวอย่างของเรา

// if an error was thrown, app will crash
let result = try! doSomething() 


if let result = try? make() {
    //If the make method is successful, the result is unwrap. It is a very elegant use.
} else {
    //make() threw an error.
}

บล็อก catch หลายบล็อก

หากเมธอดที่เราเรียกใช้สามารถโยนข้อผิดพลาดได้หลายแบบ เราสามารถคัดกรองและกำหนดลำดับการทำงานของแอปพลิเคชันตามชนิดของข้อผิดพลาดได้

ในตัวอย่างด้านล่าง บล็อก catch แต่ละบล็อกจะจัดการข้อผิดพลาดที่อาจเกิดขึ้นแตกต่างกัน

do {
    try doSomething()
} catch CustomError.errorOne {
  //handle errorOne Error
} catch CustomError.errorTwo(let customErr) {
   //handle errorTwo Error with customErr
}

ขอแสดงความยินดี

ขอแสดงความยินดี 🎉

ในบทเรียนนี้ เราได้เรียนรู้วิธีจัดการข้อผิดพลาดของแอปพลิเคชันด้วยสวิฟต์

พบกันในบทเรียนถัดไป

การจัดการข้อผิดพลาด — ภาพประกอบ 9

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

บทเรียน “การจัดการข้อผิดพลาด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การจัดการข้อผิดพลาด”

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

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

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

บทเรียน “การจัดการข้อผิดพลาด” ใช้เวลานานแค่ไหน

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

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

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

← กลับไปที่ Swift Academy