Dart Academy · บทเรียน

ข้อกำหนด on และชนิดข้อยกเว้น

จับข้อผิดพลาดเฉพาะประเภทได้อย่างแม่นยำ

บทเรียน 2 จาก 413 ขั้นตอน

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

ข้อผิดพลาดไม่ได้เหมือนกันทั้งหมด

ข้อผิดพลาดจากไฟล์และข้อผิดพลาดด้านรูปแบบเป็นคนละปัญหากัน Dart ให้คุณดักจับตามประเภทข้อมูล เพื่อให้ตอบสนองต่อแต่ละกรณีได้เหมาะสม 🎯

คีย์เวิร์ด on

ใช้ on เพื่อดักจับข้อยกเว้นเพียงประเภทเดียว บล็อกดังกล่าวจะทำงานเฉพาะเมื่อมีการโยนข้อผิดพลาดประเภทนั้น

try {
  parse();
} on FormatException {
  print('Bad format');
}

เก็บออบเจ็กต์ไว้ด้วย

ใช้ onร่วมกับ catch เพื่อกรองตามประเภทข้อมูล พร้อมรับออบเจ็กต์ข้อผิดพลาดไว้ดูรายละเอียดของข้อความ

on FormatException catch (e) {
  print(e.message);
}

ลำดับมีความสำคัญ

Dart ตรวจสอบส่วน onจากบนลงล่างและใช้รายการแรกที่ตรงกัน ให้วางประเภทข้อมูลที่เฉพาะเจาะจงไว้ก่อนประเภททั่วไป มิฉะนั้นรายการเฉพาะจะไม่ทำงาน

ส่วน on หลายรายการ

คุณสามารถวางส่วน onหลายรายการไว้กับ try เดียวกัน แต่ละรายการจะจัดการข้อยกเว้นคนละประเภทด้วยตรรกะที่ออกแบบเฉพาะ

try {
  work();
} on FormatException {
} on RangeError {
}

catch ที่ครอบคลุมทุกกรณีไว้ท้ายสุด

catchธรรมดาที่ไม่ระบุประเภทจะดักจับสิ่งที่เหลือทั้งหมด ให้วางไว้ท้ายสุดเพื่อเป็นตาข่ายนิรภัยหลังส่วนที่ระบุประเภท

} on FormatException {
} catch (e) {
  print('Other: $e');
}

Exception กับ Error

Dart แบ่งความล้มเหลวเป็น Exceptionสำหรับปัญหาที่กู้คืนได้ และ Error สำหรับข้อผิดพลาดจากการเขียนโปรแกรมที่ควรแก้ไข ไม่ใช่ดักจับ

ประเภทที่มีมาให้ในตัวที่พบบ่อย

คุณจะพบ FormatException, RangeError, StateError และ ArgumentError การรู้จักประเภทเหล่านี้ช่วยให้คุณดักจับได้อย่างแม่นยำ

ดักจับประเภทย่อยร่วมกัน

ส่วน on Exceptionจะตรงกับประเภทย่อยใด ๆ ของ Exception ใช้ประเภทที่กว้างเมื่อข้อผิดพลาดที่เกี่ยวข้องหลายแบบใช้ตัวจัดการเดียวกัน

try {
  go();
} on Exception catch (e) {
  log(e);
}

เหตุใดการกรองตามประเภทจึงช่วยได้

ตัวจัดการที่ระบุประเภททำให้โค้ดชัดเจน: คุณตอบสนองต่อไฟล์ที่หายไปต่างจากข้อมูลนำเข้าที่ไม่ถูกต้อง แทนที่จะให้ catchขนาดใหญ่ตัวเดียวคาดเดา

นำทุกอย่างมารวมกัน

ตัวอย่างนี้แสดงลำดับจากเฉพาะเจาะจงไปทั่วไป: เริ่มด้วยส่วน onที่ระบุประเภท แล้วตามด้วย catch ที่ครอบคลุมทุกกรณีเพื่อจัดการส่วนที่เหลืออย่างปลอดภัย

try {
  run();
} on FormatException catch (e) {
  print(e);
} catch (e) {
  print('Unknown');
}

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

คุณจะดักจับข้อยกเว้นเพียงประเภทเดียวได้อย่างไร

สรุปทบทวน

ตอนนี้คุณสามารถเลือกจัดการข้อผิดพลาดด้วย on เรียงส่วนต่าง ๆ โดยวางรายการเฉพาะไว้ก่อน และเพิ่มตาข่าย catch ที่ครอบคลุมทุกกรณีได้แล้ว จัดการได้แม่นยำ โค้ดจึงสะอาด ✅

เริ่มต้นได้ฟรี

เรียนรู้ Dart ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “ข้อกำหนด on และชนิดข้อยกเว้น” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ข้อกำหนด on และชนิดข้อยกเว้น”

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

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

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

บทเรียน “ข้อกำหนด on และชนิดข้อยกเว้น” ใช้เวลานานแค่ไหน

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

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

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

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

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