Шаблон для возврата конкретной информации об ошибке или успешной проверки объекта - PullRequest
0 голосов
/ 14 декабря 2011

У нас есть комбинация чисел, где числа от первого определяют формат последнего:

0001/0001/AF001 -> 0001/0001 == Rule for third number: two characters, three digits
0002/0001/0001 -> 0002/0001 == Rule for third number: four digits

Нам нужно проверить эти числа перед их сохранением в базе данных.Поскольку это является распространенной проблемой в некоторых наших проектах, мы хотим выполнить проверку в центральной службе (в данном случае в ejb).

Моя первая идея состояла в том, чтобы просто использовать метод, подобный:

public boolean isValid(String number1, String number2, String number3);

но мы хотим передать правило, если что-то недопустимо, чтобы пользователь мог видеть, что пошло не так, поэтому моя следующая идея:

public void checkNumbers(String number1, String number2, String number3) throws DetailsException;

Таким образом, можно вызвать что-то вродеэто:

try {
  checkNumbers("0001", "0001", "AF002");
} catch(DetailsException d) {
  // error handling
}

Но это кажется уродливым ... Каковы альтернативы / другие идеи, чтобы решить эту ситуацию.Есть ли типичный шаблон для использования?

1 Ответ

2 голосов
/ 14 декабря 2011

Ну, обычная (но несколько старомодная) альтернатива выбрасыванию исключения - это возвращение кода ошибки (или объекта ошибки):

ErrorInfo err = checkNumbers(n1, n2, n3);
if (err != null)
{
    ...

Но я лично выбрал бы вариант с исключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...