2015-03-17 16 views
8

Stavo unendo il mio codice sorgente con quello di un collega e ho visto che aveva aggiunto un'eccezione per essere lanciata nella dichiarazione di un metodo; tuttavia, lo sapevo, quell'eccezione non sarebbe mai stata realmente generata da quel metodo.Perché un metodo può essere dichiarato in grado di generare molte eccezioni anche se nessuno di esse viene lanciato?

Mi chiedo perché il compilatore non mi ha avvisato di una "eccezione non lanciata dichiarata" (o qualcosa del genere). Mi rendo conto che è possibile dichiarare un metodo generando N eccezioni, anche se nessuna di queste eccezioni viene lanciata dal codice nel metodo.

Perché è quello?

public void foo() throws IOException, IntrospectionException, BadStringOperationException, ... { 
    //do nothing 
} 
+0

perché JVM può propagare l'eccezione – OPK

risposta

13
  1. sottoclassi che sostituiscono il metodo può generare l'eccezione, anche se la sua superclasse non lo fa.
  2. In seguito è possibile modificare il metodo per generare una delle eccezioni elencate mantenendo la compatibilità con le versioni precedenti.
Problemi correlati