  |
I metodi ridefiniti non possono aggiungere nuove eccezioni |
  |
Altrimenti codice prima funzionante non funzionerebbe più: |
class Acquario {
...
try {
p.nuota() ;
}catch (PesceMortoException pme) {
...
}
}
  |
se aggiungo un PesceAtomico, il nuovo pesce potrebbe sollevare
nuove eccezioni imprevedibili |
  |
Aggiungere nuove eccezioni derivando una eccezione |
  |
In questo modo il codice esistente rimane valido |
  |
Si possono riconvertire le eccezioni "anomale" |
class PesceMortoPerEsplosioneException
extends PesceMortoException { }
class PesceAtomico extends Pesce {
void nuota()
throws PesceMortoPerEsplosioneException
{
try {
<operazione-a-rischio-di-esplosione>;
} catch (EsplosioneException ex) {
throw new PesceMortoEsplosioneException() ;
}
}
}
|