0 votos
Buenas, me gustaría que alguien me explicara las diferencias que hay entre Throw y Throws y entre Checked y Unchedked. A ser posible, las diferencias tanto teóricamente como sintácticamente (es decir, a la hora de implementarlas)

Muchas gracias de antemano.
por en Java

1 Respuesta

+1 voto

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

 

por