Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mensagem personalizada não aparece.

Olá, fiz o código igual ao do professor, mas a mensagem personalizada do Erro não aparece quando a exceção é lançada.

Código da Exceção:

class SaldoInsuficienteError(Exception):
    def __init__(self, mensagem=' ', saldo=None, valor=None):
        self.saldo = saldo
        self.valor = valor
        msg = 'Saldo insuficiente para efetuar a operação\n' \
            f'Saldo atual: {self.saldo} Valor a ser sacado:{self.valor}'
        super(SaldoInsuficienteError, self).__init__(mensagem or msg)

Código main:

....
    def sacar(self, valor):

        if self.saldo < valor:
            raise SaldoInsuficienteError(saldo=self.saldo, valor=valor)
        self.saldo -= valor

conta_corrente = ContaCorrente(None, 1258, 78892)
conta_corrente.deposita(50)
conta_corrente.sacar(250)
print("Saldo: ", conta_corrente.saldo)

Quando a exceção é lançada aparece apenas isso no terminal:

....
   raise SaldoInsuficienteError(saldo=self.saldo, valor=valor)
exeptions.SaldoInsuficienteError:

O que eu estou fazendo de errado aqui?

1 resposta
solução!

Oi Rafael, tudo bem?

Olhando seu código eu diria que o erra está na parte

(mensagem or msg)

Pois reparando quando você definiu a variável mensagem você colocou um espaço entre as aspas. Sendo assim, o valor da variável mensagem é válido e o que está passando para o super é esse espaço apenas ao invés de enviar o valor da variável msg.

Minha sugestão é que você remova o espaço entre as aspas na declaração e tente novamente.