Ваше лучшее решение будет ...
if (someCondition) {
value = getPermission_1();
if (!someMethod(value)) {
throw new SomeException();
}
useValue_1(value);
}
else {
value = getPermission_2();
if (!anotherMethod(value)) {
throw new AnotherException();
}
useValue_2(value);
}
И вы не должны смотреть на него как на дублирующий код, потому что если вы хотите создать исключение, тогда можно ожидать, что причина исключения будет разной в каждом случае, и поэтому должно быть другое исключение или другое сообщение. передается в каждом случае.
Я предполагаю, что вы хотите знать, какое условие было выполнено и впоследствии не выполнено, потому что все, что вы получаете, - это логическое значение от вашего ... Метод вызывает причину сбоя, вероятно, не будет очевидно в этом сценарии .