Domanda

Non vedo molta differenza tra le preoccupazioni della gestione delle eccezioni e dell'accesso in quanto entrambi sono preoccupazioni incrociate. Cosa ne pensi? Non dovrebbe essere gestito separatamente da solo piuttosto che interlacciato con la logica principale che sta implementando un metodo?

MODIFICARE: Quello che sto cercando di dire è che, a mio avviso, un'implementazione del metodo dovrebbe contenere solo la logica per il percorso di esecuzione e le eccezioni di successo dovrebbe essere gestita altrove. Non si tratta di eccezioni controllate/non controllate.

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
      }
   }

}

Nella lingua concettuale di cui sopra, il programma non si compilerà in assenza di FileReader gestore, perché il FileReader classeIl readfile non sta lanciando l'eccezione. Quindi dichiarando il FileReader gestore, il compilatore può garantire che venga gestito e il programma quindi compila.

In questo modo abbiamo il meglio di entrambi i problemi di eccezione controllati e incontrollati: robustezza e leggibilità.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top