0. Так оно у вас не соберется. Компилятор скажет "findById(String) is already defined in ..."
1. Исключение предполагает какой-то элемент неожиданности. Если вы хотите назвать метод "получитьАйДиИлиБроситьИсключение" предполагается, что это исключение должно быть уже как-то обработано, т.е. бросать вы должны проверяемое исключение, а проверяемые исключения (checked exeption) предполагают какую-то логику, а это уже все вместе вырастает в антипатерн "логики на эксепшенах".
2. Если у вас все-же метод бросает какое-то непроверяемое исключение (ну так вышло), то ничего о нем сообщать дополнительно не требуется (оно же непроверяемое!).
3. Буква S в слове SOLID означает Single Reponsibility. Никакой метод, кроме специально для этого предназначенного, не должен никак реагировать на исключения. Реагировать на исключения - это дополнительная обязанность. Если у вас, по какой-то досадной случайности появился чекд-эксепшен, самое лучшее, что вы с этим можете сделать - поставить над методом аннотацию ломбока @SneakyThrows