Я думаю, что в этом случае, если важно зарегистрировать исключения, тогда непременно выведите исключения (и, возможно, просто верните String вместо опции).В противном случае вы могли бы просто вернуть None.Одно предупреждение - могут быть исключения по другим причинам, которые вы не предвидите, и в этом случае может быть опасно делать универсальный бит кода.
Одна вещь, которую вы могли бы сделать, это что-то вроде Lift'sBox
система.Коробка, по сути, является Опцией, но с добавлением пары функций: A Full
похож на Some
, Empty
похож на None
, но Lift идет на шаг дальше и имеет Failure
,который похож на Empty
, но с причиной / сообщением.