Учитывая описанные вами обстоятельства, я думаю, что это зависит только от ваших предпочтений.В любом случае, когда условие сбоя является детерминированным, и вы можете его предвидеть, всегда лучше не использовать блок try..catch и оставлять его только для недетерминированных и непредсказуемых ошибок.
Все аргументы противисключения вместо блоков "if" относятся только к производительности (скорость, память, стек, ecc ...) и являются академическими.В действительности, когда вам нужен метод, полностью исключающий исключения, и вам не нужны причины нулевых возвращаемых значений, просто поместите 5 строк в блок try..catch и забудьте об этом!;)