Throw: sirve para lanzar una excepción en una línea del código.
throw new ArithmeticException("No se puede dividir entre cero");
Throws: sirve para pasar la excepción hacia arriba en una función.
void miFuncion() throws ArithmeticException{
// ...
}
Checked exception: El compilador de Java obliga a tratar ciertas excepciones (por ejemplo FileNotFoundException); es decir, pasar la excepción para arriba con la función con throws o capturarla con try-catch.
try {
FileReader fichero = new FileReader("fichero.txt");
// Hacer algo si existe el fichero
} catch (FileNotFoundException e) {
// Hacer algo si NO existe el fichero
}
Unchecked exception: El compilador de Java NO obliga a tratar ciertas excepciones (como NullPointerExcepcion).
fichero = null;
fichero.read();
// Se lanzará el error NullPointerException seguro, pero el compilador no obliga a capturarlo