Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Criar uma exception customizada
  2. Adicionando atributos e métodos
  3. Lançando exception customizada
  4. Relançando exception customizada

Para criarmos nossas próprias exceção, precisamos declarar uma classe herdando a classe Exception ou outra classe de exceção desejada como ZeroDivisionError ou outra.

O assunto classe, bem como atributos e métodos foram vistos em Python: Classes, Python: Encapsulamento e Python: Métodos

Sintaxe 1
class minha_excecao(excecao_base)
    "mensagem_padrao_erro"
    #corpo
Exemplo 1
class MeuErro(Exception):
    "Minha mensagem de erro custom" #mensagem de erro padrão
    pass

try:
    raise MeuErro("Ocorreu um erro")
    #raise MeuErro #exibir mensagem padrão
except MeuErro as e:
    print(e)
Saída
Ocorreu um erro

As exceções customizadas aceitam métodos e atributos assim como qualquer outra classe que criamos até agora. Tudo estudado sobre herança também é aplicável.

Exemplo 2
class MeuErro(Exception):
    atributo = ''         #atributo
    def __init__(self,p): #construtor
        self.atributo = p
    
    def getMsg(self):     #método
        print(self.atributo);
try:
    raise MeuErro("Ocorreu um erro")
except MeuErro as e:
    e.getMsg()
Saída
Ocorreu um erro
  1. 18/09/2024 - revisão 2 - Adição de link POO; ajustes gramaticais pontuais
  2. 30/08/2024 - revisão 1 - Correção em links de objetivos
  3. 19/02/2024 - versão inicial