Excepciones: detección y tratamiento

try … catch …finally

...
try {
  // código que puede generar excepciones
  ...
} catch(excepcion1 e1){
  ... 
} catch(excepcion2 e2){
  ...
} catch(Exception err){
  ... // tratamiento ante cualquier excepción que no estamos controlando anteriormente
  System.err.println(err.getMessage()); //error del objeto
  System.err.println(err.getLocalizedMessage()); // descripción local del objeto
  System.err.println(err.toString()); // descripcion del objeto
  err.printStackTrace(); // imprime el objeto y la traza de pila de llamadas lanzadas
} finally { //opcional
  ... // siempre se ejecuta haya o o ocurrido excepción
}

Los try pueden anidarse. si el try interno no tiene catch se utilizará el manejador de try … catch más externo.

Especificar excepciones

Se utilizará throws seguida de toda la lista de excepciones potenciales.

public static void main(String[] args) throws IOException, ClassNotFoundException {
....
}