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

ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก

สร้างขอบเขตข้อผิดพลาดขนาดเล็กด้วย JS เปล่า: try/catch รอบโค้ดเสี่ยง ตัวช่วยห่อหุ้ม try/catch สำหรับ async ค่า fallback และการบันทึกข้อมูลน้อยที่สุด

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

ภาพรวม

เป้าหมาย: ป้องกันไม่ให้ความล้มเหลวเพียงจุดเดียวทำให้ทั้งหน้าจอใช้งานไม่ได้

  • ใช้ try/catch รอบจุดที่มีความเสี่ยง
  • เพิ่มตัวช่วย runSafe ขนาดเล็ก
  • จัดการงานแบบ async ด้วย try/catch เช่นกัน
  • ส่งคืนค่าทดแทนและบันทึก log สั้น ๆ
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 1

ขอบเขตเฉพาะจุด: การแยกวิเคราะห์

ครอบเฉพาะขั้นตอนที่มีความเสี่ยง (JSON.parse) เท่านั้น หากล้มเหลวให้ส่งคืนออบเจ็กต์ค่าทดแทนแบบง่าย

// Try/catch boundary: parse user JSON with a fallback
function safeParseUser(json) {
  try {
    const obj = JSON.parse(json);
    // minimal validation
    if (!obj || typeof obj.name !== "string") {
      return { name: "Guest" };
    }
    return { name: obj.name };
  } catch (err) {
    // fallback on parse error
    return { name: "Guest" };
  }
}

console.log("ok:", safeParseUser("{\"name\":\"Ayla\"}"));
console.log("bad:", safeParseUser("{oops}"));
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 2

ตัวช่วย runSafe

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

// A tiny boundary helper for sync functions
function runSafe(fn, fallback) {
  try {
    return fn();
  } catch (e) {
    // log minimal info for beginners
    console.log("error:", String(e));
    return fallback;
  }
}

// Use it
const resultOk = runSafe(function () {
  return 2 + 2;
}, 0);

const resultFail = runSafe(function () {
  // simulate crash
  throw new Error("boom");
}, 0);

console.log("ok:", resultOk, "fail:", resultFail);
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 3

ขอบเขตของงานแบบไม่พร้อมกัน

สำหรับงานแบบ async ให้ใช้ try/catch รอบ await และส่งคืนสตริงหรือค่าทดแทน

// Async boundary: try/catch inside an async function
async function fetchNameFake(id) {
  // simulate failure for odd ids
  if (id % 2 === 1) {
    throw new Error("not found");
  }
  return "Ayla";
}

async function loadName(id) {
  try {
    const name = await fetchNameFake(id);
    return name;
  } catch (e) {
    console.log("async error:", String(e));
    return "Guest";
  }
}

(async function () {
  console.log("even:", await loadName(2));
  console.log("odd :", await loadName(3));
})();
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 4

แยกความเสี่ยงออกมา

อย่าครอบทั้งแอป ให้แยกขั้นตอนที่มีความเสี่ยงออกมา เพื่อไม่ให้ความล้มเหลวขัดขวางทุกอย่าง

// Boundary only around the risky step, rest continues
function renderCard(userJson) {
  // boundary: parse
  const user = safeParseUser(userJson);
  // rest of rendering can continue with fallback
  return "Hello " + user.name;
}

console.log(renderCard("{\"name\":\"Lina\"}"));
console.log(renderCard("{broken}")); // still renders with fallback
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 5

แนวปฏิบัติเรื่องขอบเขต

รายการตรวจสอบ:

  • วาง try/catch ขนาดเล็ก รอบการเรียกที่มีความเสี่ยง
  • ส่งคืนค่าค่าทดแทนขนาดเล็ก
  • บันทึกสั้น ๆ โดยไม่ใส่ข้อมูลลับ
  • ใช้รูปแบบเดียวกันกับการเรียกแบบ async
ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 6

แบบทดสอบพื้นฐานขอบเขตข้อผิดพลาด

ตรวจสอบอย่างรวดเร็ว: ขอบเขตข้อผิดพลาดใน JS แบบพื้นฐาน

ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 7

ทบทวน

ทบทวน: เพิ่ม try/catch เฉพาะจุด รอบโค้ดที่มีความเสี่ยง ใช้ตัวช่วย runSafe จัดการงานแบบ async ด้วย try/catch และส่งคืนค่าทดแทนเพื่อให้หน้าจอยังทำงานต่อได้

ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก — ภาพประกอบ 8

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

บทเรียน “ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก”

สร้างขอบเขตข้อผิดพลาดขนาดเล็กด้วย JS เปล่า: try/catch รอบโค้ดเสี่ยง ตัวช่วยห่อหุ้ม try/catch สำหรับ async ค่า fallback และการบันทึกข้อมูลน้อยที่สุด คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การตรวจสอบอินพุตและพื้นฐานการหลีกอักขระ
  2. การผสานออบเจ็กต์อย่างปลอดภัย การแช่แข็งและการผนึก
  3. ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก
← กลับไปที่ JavaScript Academy