У меня есть интерфейсреализация интерфейса запускает различные исключения
public interface DataDAO {
public void doSomething() throws Exception;
}
Допустим, что существует две реализации, одна, которая использует базу данных для получения данных и другой, который использует WebService.
public class DataDAOJdbc implements DataDAO {
public void doSomething() throws Exception {
//Implement
}
}
public class DataDAOWebService implements DataDAO {
public void doSomething() throws Exception {
//Implement
}
}
Как вы уже видите, проблема заключается в создании супер общего исключения. Поскольку обе реализации должны поднять один и тот же вид исключения.
Реализация Jdbc действительно только повышает позволяет говорить SQLException, в то время как реализация Webservice только повышает IOException.
Вопрос в том, как я могу сделать интерфейс более элегантным, поэтому я фиксирую правильное исключение?
Первое, что я, хотя создавал свое собственное исключение, и объявить его на уровне интерфейса
public interface DataDAO {
public void doSomething() throws MyCoolException;
}
И тогда, конечно, реализовать accordinly.
Вопрос в том, имеет ли это смысл? Я никогда не создавал свои собственные исключения, поэтому я не уверен, что это имеет смысл или нет. Кроме того, что я должен учитывать при создании MyCoolException?
Как насчет того, чтобы вдохнуть весну и обернуть их в RuntimeExceptions. –
@ AjayGeorge хорошо, я хочу, чтобы эти исключения обрабатывались на верхнем уровне, поэтому для них исключение RuntimExceptions не подходит для меня, исправьте меня, если я ошибаюсь :) –
Ну, вы могли бы подклассировать RuntimeExceptions, а затем создать [DataAccessException] (http : //static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/dao/DataAccessException.html), как весной. –