Es una clase como
fundamental dentro de la jerarquía de clases que definen objetos que se pueden
lanzar.
java.lang.Throwable
Error
VirtualMachineError
...
Exception
ClassNotFoundException
DataFormatException
IOException
NoSuchFieldException
NoSuchMethodException
...
RuntimeException
ArithmeticException
ClassCastException
IllegalArgumentException
IllegalStateException
IndexOutOfBoundsException
NegativeArraySizeException
NoSuchElementException
NullPointerException
UnsupportedOperationException
...
La relación
completa de clases es interminable. Las anteriores son algunas de las más
comunes, invitándose al programador a desarrollas sus propias clases, subclases
de las anteriores, sabiendo que
·
las
clases que hereden de RuntimeException
no necesitan declararse en la cabecera de los métodos: se utilizan para errores
imprevistos tales como errores del programador
·
las
clases que hereden de Exception sí deben declararse en la
cabecera de los métodos que deseen propagarlas (la única alternativa es
capturarlas dentro del método). Se utilizan para errores previstos por la
aplicación: datos erróneos para los que se sabe qué hacer cuando se presentan
La clase
Exception proporciona algunos métodos interesantes:
void printStackTrace()
imprime la traza: serie de métodos llamados sucesivamente para llegar al
punto donde se crea. Lo normal es crear el objeto cuando se produce la
circunstancia que provoca su lanzamiento, de forma que la traza indica la serie
de llamadas a métodos que llevan a la ocurrencia de la incidencia reportada.
Exception() constructor
crea un objeto sin mensaje asociado
Exception(String mensaje) constructor
crea un objeto con un mensaje asociado
String getMessage()
devuelve el mensaje introducido en el constructor
Es muy habitual
que las excepciones propias sean subclases de las Exception:
class
MisErrores |
public
class MisErrores extends Exception { private Dato dato; public MisErrores() { super(); } public MisErrores(String msg) {
super(msg); } public MisErrores(String msg, Dato dato)
{ super(msg); this.dato = dato; } public Dato getDato() { return dato; } |
Temas relacionados
Vademécum
¿cuándo tener excepciones propias?
¿cuándo lanzar Error o subclases de ella?
¿cuándo lanzar Exception o subclases de ella?
¿cuándo lanzar RuntimeException o subclases de ella?