Desarrollador Java: pregunta de entrevista

¿Cómo diseñas el manejo de excepciones en Java?

Usa excepciones para fallos excepcionales, conserva causas, expón errores de dominio en límites, evita tragarlos con catch-all y traduce una vez a respuesta API o decisión de reintento.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

El diseño de excepciones decide quién puede actuar ante un fallo. Dentro del dominio, una pequeña jerarquía de excepciones no comprobadas describe qué falló y conserva la causa; las comprobadas se reservan para casos que el llamador inmediato debe manejar. Cada capa maneja una excepción con recuperación real o la deja propagar, y la frontera, normalmente un controller advice o un ejecutor de jobs, traduce una vez a un código de estado, un cuerpo de error o una decisión de reintento y la registra una vez con contexto. Los recursos se liberan con try-with-resources en lugar de bloques finally manuales.

Ejemplo

Un repositorio lanza OrderNotFoundException que extiende una NotFoundException de dominio; el @ControllerAdvice traduce NotFoundException a 404 con un código de error estable, mientras una excepción inesperada se convierte en 500 con un ID de correlación. La capa de servicio nunca captura Exception de forma amplia, así que un error de conectividad con la base de datos llega igualmente a la lógica de reintentos del planificador.

Errores frecuentes

  • Capturar Exception, registrarla y continuar como si nada hubiera pasado.
  • Envolver una excepción sin pasar la original como causa y perder la traza.
  • Usar excepciones para flujo de control esperado como la validación de cada campo.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Java