Classe di eccezione per ogni eccezione o per tutto il framework

1

Sto sviluppando un framework e può generare vari tipi di eccezioni. Inizialmente sto lavorando con una singola classe di eccezioni che indica che qualcosa è andato storto all'interno del framework. Tuttavia, stavo pensando, forse non sarebbe corretto creare una classe specifica per ogni specifico tipo di eccezione?

Attualmente :

Esiste una classe di eccezione unica, che può generare messaggi come:

  • Framework_Exception: file non trovato;
  • Framework_Exception: metodo non trovato;
  • Framework_Exception: programmatore non trovato;

Un metodo possibile più corretto

In questo caso, dovrebbe esserci una classe di eccezione per ogni specifico tipo di errore. Tutti loro erediterebbero la classe principale (o la classe che raggruppava questo tipo di eccezione).

  • Framework_FileNotFound_Exception estende Framework_Exception;
  • Framework_MethodNotFound_Exception estende Framework_Exception;
  • Framework_ProgrammerNotFound_Exception estende Framework_Exception;
  • Framework_Method_Exception estende Framework_Exception;
  • Framework_Method_InvalidCall_Exception estende Framework_Method_Exception;
  • Framework_Method_IncorrectParam_Exception estende Framework_Method_Exception;

Quale concettuale sarebbe meglio accettata?

    
posta David Rodrigues 10.10.2014 - 06:54
fonte

1 risposta

4

L'utilizzo di tipi di eccezione separati per i diversi tipi di errore che tutti ereditano da una singola classe di base di eccezione è l'opzione più utile per gli utenti del tuo framework.

L'uso di tipi di eccezione separati ha il vantaggio che gli utenti del tuo framework hanno la possibilità di implementare la gestione degli errori specifica per quel tipo di errore.

Ad esempio, un'applicazione potrebbe implementare una strategia per cercare i file in più posizioni diverse in base a Framework_FileNotFound_Exception. E potrebbero istruire l'utente a chiamare un particolare numero di telefono in risposta a Framework_ProgrammerNotFound_Exception.
Tale diversa gestione non è realmente possibile quando tutte le eccezioni hanno lo stesso tipo.

L'ereditarietà di un tipo di eccezione comune offre agli utenti l'opzione aggiuntiva di scegliere di ignorare le differenze tra i tipi di errore.

    
risposta data 10.10.2014 - 07:16
fonte

Leggi altre domande sui tag