Раньше не любил юзать checked exceptions, ибо в котлине и шарпах их нету, и думал, что это старьё и компилятор - лох, и вот это вот всё.
А теперь думаю, что это найс в веб приложениях, когда из методов репы/ сервиса можно выбросить checked exception.
В сигнатурах методов Controller обозначить их. И в ControllerAdvice обработать. Это + к пониманию кода. Когда придёт новый чел на проект, он сразу увидит, что к чему.
Я о тех исключениях по типу UserNotFoundInDbException.
На предыдущем проекте все исключения, которые были в бизнес-логике сигналом ошибки, были Runtime. Почему я это пишу? Когда-то давно мне в чате ответили, что лучше везде uncheked exceptions применять.