по-моему, тут вообще проблема заключается в том что бросать исключение будет не правильно
особенно во втором примере
исключение оно для обработки исключительных ситуаций (c) КО
у вас же исключение происходит(вы сами его бросаете)
для передачи управления другому коду
то есть для организации логики
это как бы атата, называется антипаттерном и за это можно на код-ревью получить по жопе
Нужно ли оборачивать вызов метода someMethod() в try...catch и пробрасывать исключение дальше?
а какой в этом смысл?
вы таким образом можете себе навредить испортив оригинальный трейсбек