sésobrecarga asociada con excepción vs Throwable en Java
throw new Exception();
tiene una muy gran sobrecarga, ya que crea un StackTrace completa, etc.
¿Se
throw new Throwable();
presentan el mismo problema? ¿Se hereda este comportamiento, o arrojar un Throwable tiene una sobrecarga (o no) más pequeña?
EDITAR
Desde un punto de vistaanalista, un usuario insertar una contraseña incorrecta es una excepción a la orden de ejecución normal de un programa. Así que si tengo:
public Session newSession() {
validate_user_and_password();
}
lanzar una UserNotValidException sonaría correcto desde un analistas punto de vista.
De vuelta null
o 0
suena incorrecto si su código tiene bastante buena abstracción. Solo quería saber si realmente podría implementar esto en el código, o si tendría que dejarlo a la teoría.
Hay una buena diferencia entre la excepción del punto de vista de programación y la excepción del punto de vista del analista.
Nota: He dado un ejemplo muy simple y tonto, este no es exactamente mi caso.
Nota 2: Sé que devolver null
sería lo normal, pero debo tener el código OO correctamente abstraído y, personalmente, no veo ningún daño en esto.
¿Por qué esta preocupación? ¿Cuál es el requisito funcional? – BalusC
No debe usar excepciones en el caso regular de todos modos, solo deben usarse en * exception * al circunstancias. –
@anon deberían usarse para "rutas de código excepcionales" que pueden o no ser tan excepcionales como podría pensarse. Por ejemplo, si evita completar el seguimiento de la pila, lo mejor es utilizarlos para señalar el final de una secuencia en lugar de verificar el final después de cada lectura. (Sin embargo, esto no se aplica al bucle sobre matrices, donde la VM conoce la longitud completa). – akuhn