Non vedo molta differenza tra le preoccupazioni relative alla gestione delle eccezioni e l'accesso in quanto entrambe sono preoccupazioni trasversali. Cosa pensi? Non dovrebbe essere gestito separatamente da solo piuttosto che intercalato con la logica di base che un metodo sta implementando?
EDIT : Quello che sto cercando di dire è che a mio avviso l'implementazione di un metodo dovrebbe contenere solo la logica per il successo del percorso di esecuzione e le eccezioni dovrebbero essere gestite altrove. Non si tratta di eccezioni verificate / non selezionate.
Ad esempio, una lingua potrebbe gestire le eccezioni in modo completamente controllato usando costrutti come questo:
class FileReader {
public String readFile(String path) {
// implement the reading logic, avoid exception handling
}
}
handler FileReader {
handle String readFile(String path) {
when (IOException joe) {
// somehow access the FileInputStram and close it
}
}
}
Nel linguaggio concettuale sopra, il programma non verrà compilato in assenza del FileReader
gestore , poiché il file readFile della FileReader
classe non genera l'eccezione. Pertanto, dichiarando il FileReader
gestore , il compilatore può assicurarsi che venga gestito e che quindi il programma venga compilato.
In questo modo abbiamo il meglio dei problemi di eccezione controllati e non controllati: robustezza e leggibilità.