Exemplo básico
try {
[...]
} catch(IOException ex) {
ex.printStackTrace();
}
Lançando uma exceção
public void arriscado() throws IOException {
if (seiLá)
throw new IOException(); // gera uma exceção
}
Lançando mais de uma exceção
public class Foo {
public void arriscado() throws IOException, BadException {
if (seiLá)
throw new IOException(); // gera uma exceção
else
throw new BadException(); // gera uma exceção 2
}
}
Capturando mais de uma
try {
Foo foo = new Foo();
foo.arriscado();
} catch(IOException ex) {
ex.printStackTrace();
} catch(BadException ex) {
ex.printStackTrace();
}
Desviando a exceção
public class Foo2() {
public void execute() throws IOException { // throws manda o erro adiante - para classe que instanciar Foo2
Foo foo = new Foo();
foo.arriscado();
}
}