ขอบเขตข้อผิดพลาด (เชิงแนวคิด) โดยไม่ใช้เฟรมเวิร์ก
สร้างขอบเขตข้อผิดพลาดขนาดเล็กด้วย 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 สั้น ๆ

ขอบเขตเฉพาะจุด: การแยกวิเคราะห์
ครอบเฉพาะขั้นตอนที่มีความเสี่ยง (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}"));

ตัวช่วย 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);

ขอบเขตของงานแบบไม่พร้อมกัน
สำหรับงานแบบ 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));
})();

แยกความเสี่ยงออกมา
อย่าครอบทั้งแอป ให้แยกขั้นตอนที่มีความเสี่ยงออกมา เพื่อไม่ให้ความล้มเหลวขัดขวางทุกอย่าง
// 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

แนวปฏิบัติเรื่องขอบเขต
รายการตรวจสอบ:
- วาง try/catch ขนาดเล็ก รอบการเรียกที่มีความเสี่ยง
- ส่งคืนค่าค่าทดแทนขนาดเล็ก
- บันทึกสั้น ๆ โดยไม่ใส่ข้อมูลลับ
- ใช้รูปแบบเดียวกันกับการเรียกแบบ async

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

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

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