Quindi se parliamo di eccezioni unchecked (tutte le sottoclassi di RuntimeException) è sufficiente utilizzare throw quindi lanciando l'eccezione ma senza preoccuparsi di catturarla tramite il try-catch.
Quello che non mi è chiaro però è se c'è differenza tra lanciare una eccezione e gestirla altrove oppure lanciarla e gestirla nel metodo stesso.
Cioè, se questi due frammenti di codice sono equivalenti:
codice:
public class Esempio
{
...
public void aggiungi()
{
try
{
...
throw new EccezioneException();
}
catch (EccezioneException exc)
{
...
}
}
...
}
codice:
public class Principale
{
public static void main(String args[])
{
Esempio esempio = new Esempio();
try
{
esempio.aggiungi();
}
catch (EccezioniException exc)
{
...
}
}
}
public class Esempio
{
...
public void aggiungi() throws EccezioneException
{
...
throw new EccezioneException();
}
...
}