Gestió d'excepcions
Throws
Es pot tractar una excepció simplement fent throws:
public void metode() throws FileNotFoundException { ...
Try-catch
Podem gestionar l'excepció rellançant-la:
try {
catch (SomeException e} {
throw new AnotherException("un missatge");
}
O bé fent accions per recuperar-nos:
try {
catch (SomeException e} {
return VALOR_PER_DEFECTE;
}
Finally
Quan volem executar algun codi, passi o no passi l'excepció. Pot servir per alliberar recursos.
try {
// ...
} catch (SomeException e) {
// ...
} finally {
// el codi aqui sempre s'executarà
}
Try-with-resources
Permet treballar amb recursos, i tancar-los sense fer-ho explícitament al codi. Cal que el recurs implementi AutoCloseable.
try (AutoCloseableObject o = new AutoCloseableObject()) {
// ...
} catch (SomeException e) {
// ...
}
Multiples catch
Permet gestionar diverses excepcions. L'ordre és important: si tenim excepcions que comparteixen tipus, cal que estiguin les més específiques abans.
try {
// ...
} catch (SomeEspecificException e) {
// ...
} catch (LessEspecificException e) {
// ...
} catch (AnotherException e) {
// ...
}
Union
Permet gestionar diverses excepcions al mateix bloc.
try {
// ...
} catch (SomeException | SomeOtherException | AnotherException e) {
// ...
}