การจัดการข้อผิดพลาด
การจัดการข้อผิดพลาด
การจัดการข้อผิดพลาด เป็นบทเรียน 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
}ขอแสดงความยินดี
ขอแสดงความยินดี 🎉
ในบทเรียนนี้ เราได้เรียนรู้วิธีจัดการข้อผิดพลาดของแอปพลิเคชันด้วยสวิฟต์
พบกันในบทเรียนถัดไป

คำถามที่พบบ่อย
บทเรียน “การจัดการข้อผิดพลาด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการข้อผิดพลาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ