Я сейчас думаю о концепции, которая должна относиться к незаконным состояниям в моей Java-программе.
Я ввел класс, который выполняет этапы обработки изображений.
public class ImageProcessor{
public Image processImage(Image img){
//do some processing steps
}
}
Теперь я хочу представить другой класс, который должен проверять изображение перед выполнением обработки.
public class ImageChecker{
public void checkImage(Image img) throws ImageNotProcessableException{
//for example, if the image has a width of 0 the full process
//should be broken, throw an exception
if (img.width=0) throw new ImageNotProcessableException("width is 0");
//other conditions throwing also exceptions
// the image is fine, do nothing
}
}
Два класса должны использоваться в классе координатора.
public class Coordinator{
public void coordinate(Image img) throws ImageNotProcessableException{
//initialize both
imageChecker.checkImage(img); //if no exception is throw the process can run
imageprocessor.processImage(img);
}
}
Вопрос теперь в том, является ли этот способ обработки Exception (определения отдельного метода для них) плохим стилем кодирования? Идея этого проекта состояла в том, чтобы предотвратить загрязняющий код обработки с обработкой исключений. Я хочу, чтобы координатор выбросил исключения, и я подумал, что это может быть разумным способом. Как вы думаете, это хороший способ или это антипаттерн.
Спасибо!