Originariamente inviato da centro
public void myMethod (String str) throws Exception {

}

e questo:

try {
myMethod("ciao");
} catch(Exception e) {
//fai qualcos'altro....
}
Mah... a me non sembrano chiarissime le spiegazioni che hai ottenuto (tranne Angelo, forse). Io sono tutt'altro che un drago in Java, ma per farti capire il concetto, ti direi che hai esposto due facce della stessa medaglia. Sono soluzioni complementari, non surrogate.

Nel primo pezzo dichiari un metodo myMethod, e dichiari che al suo interno potrebbe scatenarsi un'eccezione che esso non è in grado di gestire.
In pratica è come dire: "Occhio a chi chiama myMethod(): questo potrebbe generare una situazione per lui ingestibile, e che quindi verrà rimandata al punto di invocazione."

Nel secondo pezzo chiami il metodo che hai appena dichiarato, e gestisci correttamente l'eventualità che il metodo sollevi un'Exception non gestita internamente da lui.

Semmai i dubbi a volte vengono tra quel che hai scritto tu e questo:
public void myMethod (String str) {
try {
// codice, codice
} catch (Exception e) {
// altro codice
}
}



myMethod("ciao");



...e cioè i dubbi potrebbero venirti nella scelta tra gestire le eccezioni internamente o esternamente ai metodi.




PS: chiedo conferme o smentite a chi ne sa più di me...