ฉันใช้การถกเถียงระหว่างเพื่อนสองสามคนกับฉันพวกเขาชอบข้อยกเว้นทั่วไปเช่นClientErrorException
และServerErrorException
มีรายละเอียดเป็นฟิลด์ของข้อยกเว้นในขณะที่ฉันชอบทำสิ่งที่เฉพาะเจาะจงมากขึ้น ตัวอย่างเช่นฉันอาจมีข้อยกเว้นจำนวนหนึ่งเช่น:
BadRequestException
AuthenticationFailureException
ProductNotFoundException
แต่ละรายการเหล่านี้สร้างขึ้นตามรหัสข้อผิดพลาดที่ส่งคืนจาก API
การติดตามข้อดีของข้อยกเว้นนี้ดูเหมือนว่าเป็นไปไม่ได้สำหรับ Java อย่างไรก็ตามความคิดเห็นของเพื่อนฉันไม่ใช่เรื่องแปลก
มีวิธีที่ต้องการในแง่ของความสามารถในการอ่านโค้ดและการใช้งาน API หรือว่ามันเป็นเรื่องที่ชอบ?
abstract
และยกเว้นคลาสคลาสทั่วไปด้วยเมธอด getter จากนั้นทำให้กลุ่มย่อยขยายกลุ่มทั่วไป AuthenticationFaliureException extends ClientErrorException
เช่น ด้วยวิธีนี้ผู้ใช้ทุกคนสามารถเลือกได้ว่าต้องการจัดการกับข้อยกเว้นอย่างไร มันใช้งานได้มากกว่าแน่นอน อย่างไรก็ตามเมื่อเขียนแอปพลิเคชัน (แทนที่จะเป็นห้องสมุด) มันเป็นสถานการณ์ที่แตกต่างกันของ IMHO ในกรณีนี้ฉันจะไม่ทำให้ข้อยกเว้นละเอียดเกินกว่าที่คุณต้องการเพื่อความเรียบง่าย