Quando faço o try - catch no arquivo de teste para exibir a mensagem de erro "Saldo Insuficiente", aparece o erro: PHP Fatal error: Uncaught Alura\Banco\Modelo\Conta\SaldoInsuficienteException: Voce tentou sacar 600, mas tem apenas 500 em conta
Isso significa que a Classe criada por mim SaldoInsuficienteException está funcionando corretamente, mas quando tento deixar o erro mais "bonito" no arquivo de teste, a instrução é ignorada. Quando realizo a mesma operação com a Classe já pronta do php InvalidArgumentException, a instrução funciona corretamente.
//Essa instrução funciona
try{
$conta->depositar(500);
}catch(InvalidArgumentException){
echo "Valor a depositar deve ser positivo." . PHP_EOL;
}
//Essa não. É como se não estivesse aí, já que aparece o erro criado na Classe.
try{
$conta->sacar(600);
}catch(SaldoInsuficienteException){
echo "Saldo Insuficiente";
}
<?php
namespace Alura\Banco\Modelo\Conta;
class SaldoInsuficienteException extends \DomainException // Exceção do Domínio
{
public function __construct(float $valorSaque, float $saldoAtual)
{
$mensagem = "Voce tentou sacar $valorSaque, mas tem apenas $saldoAtual em conta";
parent::__construct($mensagem);
}
}