Criei a classe como feito na aula de Exceptions
namespace Alura\Banco\Modelo\Conta;
class SaldoInsuficienteException extends \DomainException
{
public function __construct(float $valorSaque, float $saldoAtual)
{
$mensagem = "Você tentou sacar $valorSaque, mas tem apenas $saldoAtual em conta.";
parent::__construct($mensagem);
}
}
Porem quando faço sua chamada na classe Conta ele fica grifado em vermelho com a mensagem: "Undefined Type"
<?php
namespace Alura\Banco\Modelo\Conta;
use SaldoInsuficienteException;
abstract class Conta
{
private Titular $titular;
private float $saldo;
private static int $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
//acesso ao atibuto static
self::$numeroDeContas++;
}
public function __destruct()
{
self::$numeroDeContas--;
}
public function saca(float $valorASacar): void
{
$tarifaSaque = $valorASacar * $this->percentualTarifa();
$valorSaque = $valorASacar + $tarifaSaque;
if ($valorSaque > $this->saldo) {
throw new SaldoInsuficienteException($valorASacar, $this->saldo);
}
$this->saldo -= $valorSaque;
}
public function deposita(float $valorADepositar): void
{
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
return;
}
$this->saldo += $valorADepositar;
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
public static function recuperaNumeroDeContas() : int
{
return self::$numeroDeContas;
}
public function recuperaNomeTitular(): string
{
return $this->titular->recuperaNome();
}
public function recuperaCpfTitular(): string
{
return $this->titular->recuperaCpf();
}
abstract protected function percentualTarifa():float;
}
Quando o programa é executado apresenta o erro : "Uncaught Error: Class 'SaldoInsuficienteException' not found"