Alcuni linguaggi di programmazione come ad es. Scala ha il concetto di tipi Option
(chiamato anche Maybe
), che può contenere o meno un valore.
Da quello che ho letto su di loro sono considerati ampiamente un modo superiore di affrontare questo problema rispetto a null
, perché costringono esplicitamente il programmatore a considerare i casi in cui potrebbe non esserci un valore invece di esplodendo durante il runtime.
Le eccezioni controllate in Java, d'altro canto, sembrano essere considerate una cattiva idea e Java sembra essere l'unico linguaggio ampiamente utilizzato che le implementa. Ma l'idea alla base sembra essere in qualche modo simile al tipo Option
, per forzare esplicitamente il programmatore ad affrontare il fatto che potrebbe essere lanciata un'eccezione.
Ci sono altri problemi con le eccezioni controllate che i tipi Option
non hanno? O queste idee non sono così simili come penso, e ci sono buone ragioni per forzare la gestione esplicita per le Opzioni e non per le Eccezioni?