Я втік до дебати між декількома друзями і I. Вони вважають за краще загальні виключення , такі , як ClientErrorExceptionі ServerErrorExceptionз деталями , як області , за винятком, в той час як я вважаю за краще робити речі більш конкретно. Наприклад, у мене може бути кілька винятків, таких як:
BadRequestExceptionAuthenticationFailureExceptionProductNotFoundException
Кожен із них побудований на основі коду помилки, повернутого з API.
Після переваг винятків це здається ідіоматичним для Java. Однак думка моїх друзів не зовсім рідкість.
Чи є кращий спосіб з точки зору читабельності коду та зручності використання API, чи він дійсно просто приходить до переваги?
abstractта узагальнити класи винятків методами getter, а потім змусити деталізовані розширити загальні. Напр AuthenticationFaliureException extends ClientErrorException. Таким чином, кожен користувач може вибрати, яким чином він хотів би поводитися з винятками. Це, очевидно, більше працює. Однак при написанні програми (замість бібліотеки) IMHO інша ситуація. У такому випадку я б не робив винятки більш детальними, ніж вони вам потрібні, для простоти.