Pergunta de entrevista para Desenvolvedor Python

Como você decide onde capturar exceções e o que fazer com elas?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

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

Exemplo falado, em primeira pessoa

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 funciona

Perguntas 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

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot