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