Algumas linguagens de programação como, por exemplo, Scala, têm o conceito de Option
tipos (também chamados Maybe
), que podem conter um valor ou não.
Pelo que li sobre eles, eles são considerados amplamente uma maneira superior de lidar com esse problema null
, porque forçam explicitamente o programador a considerar os casos em que pode não haver um valor em vez de apenas explodir durante o tempo de execução.
Exceções verificadas em Java, por outro lado, parecem ser uma péssima idéia, e Java parece ser a única linguagem amplamente usada que as implementa. Mas a idéia por trás deles parece ser um pouco semelhante ao Option
tipo, forçar explicitamente o programador a lidar com o fato de que uma exceção pode ser lançada.
Existem alguns problemas adicionais com exceções verificadas que os Option
tipos não possuem? Ou essas idéias não são tão parecidas quanto eu penso, e há boas razões para forçar o tratamento explícito de Opções e não de Exceções?
Either e a
tipo de dados.