Perché si dovrebbe trasformare un'eccezione controllata in un'eccezione non controllata? [duplicare]

1

Il mio amico mi ha detto oggi che alcuni programmatori trasformano un'eccezione controllata (ad esempio EJBException, SQLException ...) in un controllo non controllato (RuntimeException?)

Il mio amico ha spiegato uno stack di chiamate dove, se modifichi il fondo dello stack, dovresti cambiare ogni metodo che lo chiama se cambi il metodo più in basso (più interno).

Puoi approfondire e / o esagerare con il codice più in dettaglio o ho frainteso qualcosa? Non penso di aver avuto questo problema dal momento che non ho mai scritto throws .

    
posta Niklas Rosencrantz 03.09.2013 - 18:03
fonte

1 risposta

6

Molti programmi hanno un gestore di eccezioni globale di livello superiore che cattura e registra tutte le eccezioni impreviste e non rilevate. Ciò significa che tutte le eccezioni non controllate non controllate vengono registrate in modo uniforme.

In questo scenario, di fronte a un'eccezione controllata che non puoi affrontare o non prevedi che si verifichi, il modo più semplice per gestirlo è semplicemente throw new RuntimeException(ex); , perché se lo facessi throw ex; il tuo metodo sarebbe devo dichiararlo ( void foo() throws SQLException ), e qualsiasi altro metodo che lo ha chiamato e non ha catturato l'eccezione avrebbe anche bisogno di questa dichiarazione.

    
risposta data 03.09.2013 - 19:26
fonte

Leggi altre domande sui tag