Capture uma exceção só onde você realmente pode fazer algo a respeito: repetir, substituir por um padrão ou traduzir num erro de domínio com contexto. Em todo o resto, deixe propagar até uma única fronteira que loga e devolve uma resposta. Capture tipos específicos em vez de except pelado, nunca engula em silêncio, e use raise from para a causa original sobreviver no traceback.
Por que os entrevistadores perguntam isso
O estilo de exceções conta ao entrevistador como você vai se comportar durante um incidente. Espalhar try except por tudo produz sistemas que falham calados e são impossíveis de depurar às três da manhã. Eles querem ouvir uma política deliberada sobre fronteiras, tipos específicos de exceção, preservação da cadeia de causas, e a diferença entre erros que você espera e bugs que deveriam quebrar alto.
Como estruturar sua resposta
- Diga a regra: capture só onde você pode agir.
- Descreva o padrão de fronteira única de erro.
- Insista em tipos específicos e em raise from.
- Separe falhas esperadas de bugs reais.
Exemplo de resposta
Meu padrão é deixar as coisas propagarem. Um try except só se justifica se eu puder repetir, cair para algo sensato ou acrescentar contexto de que o chamador precisa. Fora isso eu só estou escondendo informação. Em serviços eu estruturo como uma fronteira de erro, geralmente um middleware ou um exception handler, que loga o traceback completo com um request id e devolve uma resposta limpa, e aí o código embaixo continua legível porque não está coberto de handlers. Dentro de um módulo eu capturo tipos estreitos e traduzo numa exceção de domínio com raise from, para o traceback manter a causa original, já que perder essa cadeia é como você acaba encarando um stack trace que começa em lugar nenhum útil. Except pelado é proibido nas bases que eu toco, porque engole KeyboardInterrupt e SystemExit também. A distinção que mais me importa é falha esperada versus bug. Um timeout numa API de terceiro é esperado e ganha retry. Um KeyError no meu próprio dicionário é bug e deve ser barulhento.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você decide entre repetir e falhar rápido?
- O que um exception group te dá?
- Quando você definiria uma hierarquia de exceções customizada?
Mais perguntas para Desenvolvedor Python
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas