โหมดติวตอบกรรมการ
หัวข้อที่ 15 จากทั้งหมด 62
5.3 Error Handling — 3 ชั้น
สรุปสั้น: 1. asyncHandler(fn) — ครอบ async function ถ้า throw error จะ catch(next) อัตโนมัติ 2. errorConverter — แปลง Error ธรรมดาเป็น ApiError 3. errorHandler — ส่ง JSON error response (production จะซ่อน stack trace) วิธีใช้ในทุก controlle...
คำสำคัญ
- error
- handling
- asynchandler
- ครอบ
- async
- function
คำถามที่กรรมการมักถาม
- หัวข้อ "5.3 Error Handling — 3 ชั้น" คืออะไร และทำไมถึงสำคัญกับโปรเจกต์ของคุณ?
- ตอนออกแบบเรื่อง handling คุณเทียบทางเลือกอะไรบ้าง และเหตุผลที่เลือกวิธีสุดท้ายคืออะไร?
- ถ้ากรรมการท้วงเรื่อง asynchandler คุณจะอธิบายและป้องกันแนวทางนี้อย่างไร?
- ถ้าต้องปรับปรุง error ให้ดีขึ้นทันที คุณจะเริ่มแก้อะไรก่อน เพราะอะไร?
ตัวอย่างคำตอบ
สำหรับหัวข้อ "5.3 Error Handling — 3 ชั้น" เป้าหมายหลักคือ 1. asyncHandler(fn) — ครอบ async function ถ้า throw error จะ catch(next) อัตโนมัติ 2. errorConverter — แปลง Error ธรรมดาเป็น ApiError 3. errorHandler — ส่ง JSON error response (production จะซ่อน stack trace) วิธีใช้ในทุก controlle... แนวทางที่ใช้เชื่อมโยงกับความต้องการระบบ ช่วยให้ระบบเชื่อถือได้และดูแลง่ายขึ้น และเมื่อเทียบกับทางเลือกอื่นถือว่าเหมาะสมที่สุดภายใต้ข้อจำกัดของโปรเจกต์นี้
คำนวณยังไง
- เปอร์เซ็นความคืบหน้า:
Math.round((index / total) * 100)=Math.round((15 / 62) * 100)= 24% - ลำดับหัวข้อปัจจุบัน: รับจาก query
?section=แล้วบังคับให้อยู่ในช่วง1..62ค่าที่รับมา:15, ค่าสุดท้าย:15 - จำนวนหัวข้อทั้งหมด:
62(นับจากหัวข้อ markdown ระดับ##และ###) - สรุปสั้น: สร้างจาก
summarizeText(stripMarkdown(sectionContent), 230) - คำสำคัญ: ดึงจากความถี่คำในชื่อหัวข้อ + เนื้อหา หลังกรองคำฟุ่มเฟือย (stopwords)
- คำถามกรรมการ: สร้างจาก template โดยอิงชื่อหัวข้อและคำสำคัญหลัก