Наш сервис вызывает API, который извлекает данные из базы данных.Давайте определим это такне найдено.Итак, мой код: -
try{
List<RowData> list = getData(id);
} catch (FinderException e) {
throw new InternalException();
}
return list;
Теперь я понял, что API не выдает исключение FinderException, когда данные не найдены.Следовательно, код моего клиента не работает.Потому что клиенты нашего API ожидали, что InternalException будет выброшено, когда данные не найдены.Теперь их код
list.get(0)
взломан.Теперь я подумываю об изменении кода на: -
try{
List<RowData> list = getData();
if(list.isEmpty()) throw new FinderException()
} catch (FinderException e) {
throw new InternalException();
}
return list;
это хороший код, чтобы бросать и ловить в том же методе?Если нет, то почему.Как я могу улучшить свой дизайн?