tipos - todas las excepciones en java
¿Cómo puedo escribir excepciones personalizadas? (4)
¿Cómo puedo crear una nueva Exception
diferente de los tipos prefabricados?
public class InvalidBankFeeAmountException extends Exception{
public InvalidBankFeeAmountException(String message){
super(message);
}
}
Mostrará la advertencia para la InvalidBankFeeAmountException que está escrita en la primera línea.
Asegúrese de no excederse con excepciones, especialmente excepciones marcadas. Recomiendo leer el Capítulo 9 de Effective Java de Joshua Bloch, y en particular su Item 60 (Favorecer el uso de excepciones estándar). Sus recomendaciones también incluyen el uso de excepciones comprobadas para excepciones que pueden recuperarse, el uso de excepciones no verificadas (RuntimeExceptions) para errores de programación y evitar el uso innecesario de excepciones marcadas.
Si se lanza una excepción InvalidBankAccount cada vez que se encuentra un error de programación, es probable que solo desee lanzar una Java IllegalStateException no seleccionada estándar en su lugar. (Esto deja de lado la necesidad de declarar serialVersionUID).
Echa un vistazo a:
http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html?page=1
Un ejemplo se da allí en la página 2:
public class DuplicateUsernameException
extends Exception {
public DuplicateUsernameException
(String username){....}
public String requestedUsername(){...}
public String[] availableNames(){...}
}
junto con un conjunto de pautas para cuándo y por qué crearías tus propias excepciones.
Todo lo que necesita hacer es crear una nueva class
y hacer que extend Exception
.
Si desea una Exception
que no esté seleccionada, debe extend RuntimeException
.
Nota : Una Exception
marcada es una que requiere que rodees la Exception
en un bloque try
/ catch
o que tengas una cláusula '' throws
'' en la declaración del método. (como IOException
) Exceptions
marcar se pueden lanzar igual que las Exceptions
comprobadas, pero no es necesario que las maneje explícitamente de ninguna manera ( IndexOutOfBoundsException
).
Por ejemplo:
public class MyNewException extends RuntimeException {
public MyNewException(){
super();
}
public MyNewException(String message){
super(message);
}
}
solo extienda cualquiera
-
Exception
, si desea que se verifique su excepción (es decir, se requiere en una cláusula throws) -
RuntimeException
, si desea que su excepción no esté marcada.