Это вопрос стиля.То, как вы описали, является своего рода стилем Си для достижения цели.Стиль Java следующий: checkPin (pin) должен возвращать логическое значение.Истинное значение означает, что штифт в порядке, а ложное значение - не в порядке.Если происходит ошибка, вы бросаете исключение.Исключения являются стандартным способом устранения ошибок в Java.Исключения полезны, потому что они могут иметь типы и сообщения об ошибках, чтобы помочь в отладке.
Я говорю, что описываемый вами механизм - это стиль C, потому что в C стандартный способ обработки ошибок - возвращать целое число, отображающееопределить, а затем передать по ссылке искомое значение (в данном случае логическое).Таким образом, в c вы получите
int checkPin(int pin, bool &ans); //returns an error value.
. В любом случае, я настоятельно рекомендую не возвращать значение ошибки в том же месте, где вы возвращаете логическое значение.Это создает путаницу, потому что одно значение (возвращаемое значение) должно действительно представлять только одну вещь.Состояние ошибки и ответ на вопрос - две разные вещи, поэтому их следует возвращать по разным каналам.
Надеюсь, это помогло.