Хотя ваш код можно написать таким образом, чтобы исключение И значение можно было получить из вызова функции (см. Выше), НИКОГДА не следует делать это в правильном кодировании.
Я бы хотел увидеть ссылку на документацию по этому API. API должны уделять первостепенное внимание ясности. Создание исключения и возврат значения оставляет вопрос о том, является ли возвращенное значение безопасным для использования или недействительным.
Помните, блоки try / catch являются ДРУГИМ методом обработки исключений. Они не передают исключение вызывающему методу, а обрабатывают его внутренне так, как разработчик считает это целесообразным.
Если для целей отладки вам нужно увидеть результирующее значение в случае исключения, тогда идея Богемиана работает хорошо.