Деякі мови програмування, наприклад, Scala, мають поняття Optionтипів (які також називаються Maybe), які можуть містити значення чи ні.
З того, що я читав про них, вони широко вважаються чудовим способом вирішення цього питання, ніж nullтому, що вони явно змушують програміста розглянути випадки, коли може не бути значення, а не просто підірвати під час виконання.
З іншого боку, перевірені винятки на Java здаються поганою ідеєю, а Java, здається, є єдиною широко використовуваною мовою, яка їх реалізує. Але ідея, що стоїть за ними, здається дещо схожа на Optionтип, щоб явно змусити програміста боротися з тим, що може бути викинуто виняток.
Чи є якісь додаткові проблеми з перевіреними винятками, яких Optionнемає у типів? Або ці ідеї не такі схожі, як я вважаю, і є вагомі причини для примусового явного поводження з параметрами, а не з винятками?
Either e aтип даних.