Quali sono le possibili / utili implementazioni quando si estendono le eccezioni?

4

Ho visto molte eccezioni - personalizzate o integrate nel linguaggio (PHP) stesso che non hanno differenze ma il loro nome di classe.

Quando estendi le eccezioni predefinite da utilizzare all'interno del tuo codice, ci sono altre cose che potresti implementare che sono utili oltre al nome dell'eccezione più specifico che non violi le cose come una singola responsabilità?

    
posta Wesley van Opdorp 14.10.2011 - 11:13
fonte

1 risposta

3

Ulteriori informazioni sull'errore. Un esempio tipico è un'eccezione SQL in cui si desidera includere elementi quali la query che ha esito negativo, il codice di errore ANSI-SQL, il codice di errore specifico del fornitore, il messaggio di errore dal driver SQL, ecc. Altri esempi: nome dell'argomento per InvalidArgumentExceptions, HTTP codici di stato e messaggi per HttpExceptions, ID di controllo e valore per ValidationExceptions, ...

In effetti, la maggior parte delle eccezioni può (e dovrebbe) portare un po 'più di informazioni oltre a "qualcosa è andato storto".

Anche se normalmente dovresti evitare di presentare queste informazioni all'utente, è comunque di grande aiuto nell'esaminare file di log o simili. Immagina di avere una voce di registro che dice "SqlException: Column 'usernaem' does not exist. (Query: SELECT * FROM user WHERE username = :usernaem)" invece di solo "SqlException" ...

    
risposta data 14.10.2011 - 11:36
fonte

Leggi altre domande sui tag