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

throw, try และ catch

ตรวจจับและตอบสนองต่อความล้มเหลว

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

เมื่อเกิดข้อผิดพลาด

โปรแกรมอาจพบปัญหา เช่น ข้อมูลนำเข้าไม่ถูกต้อง ไฟล์หายไป หรือการคำนวณผิดพลาด Dart จะแจ้งปัญหาเหล่านี้ด้วย ข้อยกเว้นแทนการทำงานผิดพลาดอย่างเงียบ ๆ 🚨

โยนข้อยกเว้น

คุณแจ้งปัญหาด้วยตัวเองได้ด้วย throw ซึ่งจะหยุดลำดับการทำงานปกติทันทีที่เกิดปัญหา และส่งต่อการควบคุมให้ตัวจัดการ

throw Exception('Something failed');

คุณสามารถโยนอะไรก็ได้

Dart อนุญาตให้คุณ throwออบเจ็กต์เกือบทุกชนิด แม้แต่ String แต่ในทางปฏิบัติ ควรโยนออบเจ็กต์ Exception หรือ Error จริง เพื่อให้ตัวจัดการอ่านเข้าใจได้ชัดเจน

throw FormatException('Bad number');

ป้องกันโค้ดที่เสี่ยงเกิดข้อผิดพลาด

ห่อโค้ดที่อาจล้มเหลวไว้ภายในบล็อก try Dart จะทำงานตามปกติ แต่เตรียมพร้อมตอบสนองหากมีการโยนข้อยกเว้น

try {
  risky();
}

ดักจับปัญหา

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

try {
  risky();
} catch (e) {
  print('Caught: $e');
}

ลำดับการทำงานข้ามไปข้างหน้า

เมื่อเกิดการโยนข้อยกเว้น ส่วนที่เหลือของบล็อก tryจะถูกข้ามทันที Dart จะกระโดดไปยังบล็อก catch ที่ตรงกัน

อ่านออบเจ็กต์ข้อผิดพลาด

ตัวแปรใน catch (e)จะเก็บสิ่งที่ถูกโยนมา การพิมพ์ค่าตัวแปรนี้มักแสดงข้อความที่ช่วยอธิบายว่าส่วนใดทำงานผิดพลาด

catch (e) {
  print(e);
}

ดึงร่องรอยสแต็ก

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

catch (e, stack) {
  print(stack);
}

กู้คืนแทนการทำให้โปรแกรมหยุดทำงาน

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

ไม่มีตัวดักจับ โปรแกรมจะหยุดทำงาน

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

ตัวอย่างฉบับสมบูรณ์

นี่คือรูปแบบทั้งหมด: มี throwอยู่ภายใน try จากนั้นถูกดักจับและจัดการอย่างเหมาะสม ทำให้การทำงานดำเนินต่อไปได้

try {
  throw Exception('Oops');
} catch (e) {
  print('Handled: $e');
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

บล็อกใดตอบสนองต่อข้อยกเว้นที่ถูกโยนมา

สรุปทบทวน

ตอนนี้คุณสามารถแจ้งปัญหาด้วย throw ป้องกันโค้ดที่เสี่ยงด้วย try และกู้คืนใน catch ได้แล้ว ทั้งสามส่วนนี้ช่วยให้โปรแกรมทำงานต่อไปได้ 🎉

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

บทเรียน “throw, try และ catch” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “throw, try และ catch”

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

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

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

บทเรียน “throw, try และ catch” ใช้เวลานานแค่ไหน

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

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

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

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

  1. throw, try และ catch
  2. ข้อกำหนด on และชนิดข้อยกเว้น
  3. finally และการล้างข้อมูลที่รับประกัน
  4. ข้อยกเว้นแบบกำหนดเองและ rethrow
← กลับไปที่ Dart Academy