Pregunta de entrevista para Desarrollador Python

¿Cómo decides dónde capturar excepciones y qué hacer con ellas?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Captura una excepción solo donde puedas hacer algo de verdad: reintentar, sustituir por un valor por defecto o traducirla a un error de dominio con contexto. En todo lo demás, deja que se propague hasta una única frontera que loguee y devuelva una respuesta. Captura tipos concretos en vez de un except pelado, nunca la silencies, y usa raise from para que la causa original sobreviva en el traceback.

Por qué lo preguntan los entrevistadores

Tu estilo con las excepciones le dice al entrevistador cómo te vas a comportar durante una incidencia. Repartir try except por todas partes produce sistemas que fallan en silencio y son imposibles de depurar a las tres de la mañana. Quieren oír una política deliberada sobre fronteras, tipos concretos de excepción, conservar la cadena de causas, y la diferencia entre errores que esperas y bugs que deberías dejar reventar en alto.

Cómo estructurar tu respuesta

  • Enuncia la regla: captura solo donde puedas actuar.
  • Describe el patrón de una única frontera de errores.
  • Insiste en tipos concretos y en raise from.
  • Separa los fallos esperados de los bugs de verdad.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Por defecto dejo que las cosas se propaguen. Un try except solo se justifica si puedo reintentar, caer a algo sensato o añadir contexto que quien llama necesita. Si no, solo estoy escondiendo información. En los servicios lo estructuro como una única frontera de errores, normalmente un middleware o un manejador de excepciones, que loguea el traceback completo con un id de petición y devuelve una respuesta limpia, y así el código de debajo se mantiene legible porque no está cubierto de manejadores. Dentro de un módulo capturo tipos concretos y los traduzco a una excepción de dominio con raise from, para que el traceback conserve la causa original, porque perder esa cadena es como acabas mirando un stack trace que no empieza en ningún sitio útil. El except pelado está prohibido en las bases de código que llevo, porque también se traga KeyboardInterrupt y SystemExit. La distinción que más me importa es fallo esperado frente a bug. Un timeout en una API de terceros es esperado y se reintenta. Un KeyError en mi propio diccionario es un bug y debe sonar fuerte.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cómo decides entre reintentar y fallar rápido?
  • ¿Qué te aporta un grupo de excepciones?
  • ¿Cuándo definirías una jerarquía de excepciones propia?

Más preguntas para Desarrollador Python

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot