Uno lo dichiara, l'altro lo realizza, lo fa:
throw viene usato per lanciare effettivamente l'eccezione, mentre throws è dichiarativa per il metodo. Essi non sono intercambiabili. Ad esempio:
mioMetodo public void (int param) throws MyException
{
if (param <10)
{
throw new MyException ("Troppo bassa!");
}
/ / Blah, blah, blah ...
}
La clausola throws dice al compilatore che tale eccezione possa essere gestita dal metodo chiamante.