ในการพัฒนาซอฟต์แวร์สมัยใหม่ การจัดการข้อผิดพลาดอย่างสุภาพนั้นมีความสําคัญมากในการสร้างโปรแกรมที่น่าเชื่อถือและเป็นมิตรกับผู้ใช้ แผงควบคุมรูปแบบความรับผิดชอบนี้จะให้วิธีการจัดการข้อผิดพลาดที่ยืดหยุ่นได้ใน API โดยผ่านการร้องขอผ่านสายโซ่ของผู้ดูแล จนกระทั่งหนึ่งสามารถดําเนินการได้ วิธีนี้ทําให้ผู้ส่งคําสั่งของผู้รับของตัวรับของโปรแกรมนี้ลดลง ทําให้การจัดการผิดพลาดมากขึ้น และสามารถรักษาได้
การ เข้าใจ ความ สําคัญ ของ แบบ อย่าง ที่ ดี
การ ควบคุม การ ทํา งาน ของ เครื่อง มือ
การ ทํา ให้ รูป แบบ ครบ ถ้วน ใน การ จัด การ ผิด พลาด ของ เอ พี ไอ
ในการปรับใช้รูปแบบนี้ ให้กําหนดคลาสตัวจัดการพื้นฐานด้วยวิธีการจัดการข้อผิดพลาด แต่ ละตัวจัดการแต่ละรุ่นจะขยายชั้นนี้ออกไป โดยจะข้ามวิธีการจับเพื่อประมวลผลชนิดข้อผิดพลาดบางอย่าง หากตัวจัดการไม่สามารถประมวลผลได้ มันจะส่งต่อคําขอไปยังผู้ดูแลคนต่อไปในโซ่
ตัวอย่าง: ตัวจัดการข้อผิดพลาด
สมมติว่าเรามีผู้ดูแลข้อผิดพลาดที่แตกต่างกัน สําหรับการตรวจสอบสิทธิ์ผิดพลาด, ข้อผิดพลาดที่ตรวจสอบ, และข้อผิดพลาดของแม่ข่าย แต่ ละผู้ดูแลตรวจสอบว่า สามารถประมวลผลข้อผิดพลาดได้หรือไม่; ถ้าไม่ มันจะส่งต่อข้อผิดพลาดไปยังผู้ดูแลถัดไป
class ErrorHandler {
constructor(next = null) {
this.next = next;
}
handle(error) {
if (this.canHandle(error)) {
this.process(error);
} else if (this.next) {
this.next.handle(error);
}
}
canHandle(error) {
return false;
}
process(error) {
// Default implementation
}
}
class AuthErrorHandler extends ErrorHandler {
canHandle(error) {
return error.type === 'auth';
}
process(error) {
console.log('Handling authentication error:', error.message);
}
}
class ValidationErrorHandler extends ErrorHandler {
canHandle(error) {
return error.type === 'validation';
}
process(error) {
console.log('Handling validation error:', error.message);
}
}
class ServerErrorHandler extends ErrorHandler {
canHandle(error) {
return error.type === 'server';
}
process(error) {
console.log('Handling server error:', error.message);
}
}
// Setting up the chain
const errorChain = new AuthErrorHandler(
new ValidationErrorHandler(
new ServerErrorHandler()
)
);
// Example error
const error = { type: 'validation', message: 'Invalid input' };
errorChain.handle(error);
ข้อ ดี ต่าง ๆ ของ การ ใช้ แบบ แผน
- การวิเคราะห์ข้อผิดพลาดของ Deckuples
- อนุญาตให้ทําการเพิ่มหรือลบผู้ดูแลแบบไม่ตายตัว
- ปรับโค้ดความจุและอ่านได้ดีขึ้น
- ให้วิธีแปลงค่าได้ในการจัดการข้อผิดพลาดหลายประเภท
การเพิ่มความจุของรูปแบบความรับผิดชอบใน API ผิดพลาด การปรับปรุงความยืดหยุ่นและความทนทาน ทําให้นักพัฒนาสามารถสร้างระบบจัดการข้อผิดพลาดที่ชัดเจน และรักษาได้ ที่สามารถพัฒนาได้ตามความต้องการของโปรแกรม