1
resposta

throw new Error usado juntamente com Heranças

Olá! Eu estava praticando aqui algumas novas instâncias de erro aqui no processo do Bytebank.

Tive uma ideia de criar um erro quando fosse aberta uma conta para um cliente não cadastrado. E outro erro para quando fosse aberta uma conta com saldo negativo.

A do saldo negativo deu certo. Ele dá o erro exatamente no momento da criação da conta. As referências de linhas de todos os arquivos batem com o erro.

Porém o erro dos clientes não rolou. Eu criei a seguinte condição:

if(!(this._cliente instanceof Cliente)){
                console.log("ABRIR CONTA\nCliente não existente. Cadastrar primeiramente um cliente");
            }

Eu importei a classe cliente dentro da classe conta. Está dando erro em todas as contas. A referencia da linha no erro é a linha da 1a abertura de conta. Eu testei trocar o "throw new Error" por um "console.log" para ver onde ele aparece. E ele aparece em todas as aberturas de conta. Não sei se estou viajando, mas pelo que eu entendi, ele está reconhecendo que o construtor usado nas classes, que referencia o Super, contém escrito "cliente" em um de seus atributos, então como não há um nenhum "cliente" instanciado na classe Clientes ele deve estar dando erro.

Há algum modo de lidar com erros e diferentes constructors que referenciam o super?

Obrigado!

1 resposta

Fala ai João, tudo bem? Acredito que o problema seja exatamente o que você comentou, você está verificando se existe algum Cliente definido e instânciado para o atributo _cliente.

O que você precisa fazer é validar se o cliente passado no construtor existe ou não ao contrário de validar o atributo _cliente.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software