Некоторые языки программирования, такие как, например, Scala, имеют концепцию Option
типов (также называемых Maybe
), которые могут либо содержать значение, либо нет.
Из того, что я читал о них, они считаются широко лучшим способом решения этой проблемы null
, потому что они явно вынуждают программиста рассматривать случаи, когда не может быть значения, а не просто взорваться во время выполнения.
Проверенные исключения в Java, с другой стороны, кажутся плохой идеей, и Java кажется единственным широко используемым языком, который их реализует. Но идея, стоящая за ними, кажется, чем-то похожа на Option
тип, чтобы явно заставить программиста иметь дело с тем фактом, что может быть выдано исключение.
Есть ли дополнительные проблемы с проверенными исключениями, Option
которых нет у типов? Или эти идеи не так похожи, как я думаю, и есть веские причины для принудительной явной обработки опций, а не исключений?
Either e a
Тип данных.