0Pricing
Flask Academy · Aula

Lance classes de exceção personalizadas

Defina erros de domínio que sejam convertidos em JSON.

Lance classes de exceção personalizadas é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.

Erros que expressam seu domínio

Números como 400 são genéricos. Uma exceção personalizada nomeia o problema real, como um pagamento que falhou ou uma cota atingida.

Crie uma subclasse de uma exceção

Você começa definindo uma classe que herda de Exception. Isso fornece um erro claro e lançável, criado por você.

class PaymentError(Exception):
    pass

Adicione um código de status

Adicione à classe um atributo código_de_status para que um manipulador saiba qual código HTTP enviar quando ela for acionada.

class PaymentError(Exception):
    status_code = 402

Inclua uma mensagem

Armazene uma mensagem compreensível no construtor. Seu manipulador poderá lê-la depois e colocá-la no corpo da resposta.

def __init__(self, message):
    self.message = message

Lance o erro em uma visão

Dentro de uma visão, basta lançar o erro quando algo der errado. O Flask então procura um manipulador correspondente.

if not paid:
    raise PaymentError("Card declined")

Lide com a classe personalizada

Registre um errorhandler para sua classe. Ele recebe a instância, para que você possa ler tanto a mensagem quanto o código de status.

@app.errorhandler(PaymentError)
def on_pay(e):
    return e.message, e.status_code

Retorne JSON a partir dela

Em uma API, transforme o erro em JSON dentro do manipulador. Os clientes recebem uma falha estruturada que podem analisar com confiabilidade.

return jsonify(error=e.message), e.status_code

Uma base para muitos erros

Crie uma única classe base e faça com que os erros específicos herdem dela. Então, um manipulador poderá cobrir toda a sua família de erros.

class ApiError(Exception):
    pass

Defina valores padrão sensatos

Defina na base um código_de_status padrão, como 400. As subclasses só o substituem quando precisam de outro valor.

class ApiError(Exception):
    status_code = 400

Mantenha a lógica fora das visões

Lançar erros do domínio permite que as visões permaneçam curtas. O manipulador cuida da formatação, e cada visão apenas sinaliza o que deu errado.

Por que isso é escalável

À medida que um aplicativo cresce, as exceções personalizadas mantêm a lógica de erros em um único lugar organizado. Novos tipos de erro se conectam ao mesmo fluxo limpo.

Verificação rápida

Como uma visão aciona seu erro de domínio?

Recapitulação

Você criou classes de exceção personalizada com código de status e mensagem, lançou-as nas visões e mapeou-as para um JSON organizado. Incrível!

Perguntas Frequentes

A aula “Lance classes de exceção personalizadas” é grátis?

Sim — o texto completo de “Lance classes de exceção personalizadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.

O que vou aprender em “Lance classes de exceção personalizadas”?

Defina erros de domínio que sejam convertidos em JSON. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Flask Academy?

Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Lance classes de exceção personalizadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Flask Academy?

Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. abort e códigos de erro HTTP
  2. Registre funções errorhandler
  3. Lance classes de exceção personalizadas
  4. Envelopes uniformes de erro JSON
← Voltar para Flask Academy