ผมเขียนบริการเว็บใน Java และฉันกำลังพยายามที่จะคิดออกวิธีที่ดีที่สุดในการกำหนดรหัสข้อผิดพลาดและสตริงข้อผิดพลาดที่เกี่ยวข้อง ฉันต้องมีรหัสข้อผิดพลาดที่เป็นตัวเลขและสตริงข้อผิดพลาดที่รวมกลุ่มกัน ทั้งรหัสข้อผิดพลาดและสตริงข้อผิดพลาดจะถูกส่งไปยังไคลเอนต์ที่เข้าถึงบริการเว็บ ตัวอย่างเช่นเมื่อเกิด SQLException ฉันอาจต้องการทำสิ่งต่อไปนี้:
// Example: errorCode = 1,
// errorString = "There was a problem accessing the database."
throw new SomeWebServiceException(errorCode, errorString);
โปรแกรมไคลเอ็นต์อาจแสดงข้อความ:
"เกิดข้อผิดพลาด # 1: มีปัญหาในการเข้าถึงฐานข้อมูล"
ความคิดแรกของฉันคือการใช้Enum
รหัสข้อผิดพลาดและแทนที่toString
วิธีการในการส่งคืนสตริงข้อผิดพลาด นี่คือสิ่งที่ฉันคิดขึ้น:
public enum Errors {
DATABASE {
@Override
public String toString() {
return "A database error has occured.";
}
},
DUPLICATE_USER {
@Override
public String toString() {
return "This user already exists.";
}
},
// more errors follow
}
คำถามของฉันคือมีวิธีที่ดีกว่านี้ไหม ฉันต้องการวิธีแก้ปัญหาในโค้ดมากกว่าอ่านจากไฟล์ภายนอก ฉันใช้ Javadoc สำหรับโปรเจ็กต์นี้และความสามารถในการบันทึกรหัสข้อผิดพลาดในบรรทัดและอัปเดตโดยอัตโนมัติในเอกสารประกอบจะเป็นประโยชน์