2
respostas

Exception não encontrada na classe Conta

Opa ! Galera, no meu código está ocorrendo um FATAL ERROR ...o php está reclamendo que a classe SaldoInsuficienteException não foi encontrada na classe Conta.

segue a linha : PHP Fatal error: Uncaught Error: Class 'Alura\Banco\Modelo\Conta\SaldoInsuficienteException' not found in C:\Users\VANDERSON TELES\Downloads\PHP\php-exceptions-projeto-inicial\src\Modelo\Conta\Conta.php:31 Esta linha 31 no meu código é onde faço a chamada da Exception no IF do método sacar. (Como no exemplo da aula) .... "if ($valorSaque > $saldo){ throw new SaldoInsuficienteException($valorSaque , $Saldo); }" Alguém passou por algo parecido ?

ps: não estou usando nenhuma IDE...

2 respostas

Segue o código: <?php

namespace Alura\Banco\Modelo\Conta;

use Alura\Banco\Modelo\Conta{Titular,SaldoInsuficienteException}; <- Fiz este acréscimo pra ver se resolvia, mas, NADA !

abstract class Conta { private Titular $titular; protected float $saldo; private static int $numeroDeContas = 0;

public function __construct(Titular $titular)
{
    $this->titular = $titular;
    $this->saldo = 0;

    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($valorSaque, $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 function recuperaNomeTitular(): string
{
    return $this->titular->recuperaNome();
}

public function recuperaCpfTitular(): string
{
    return $this->titular->recuperaCpf();
}

public static function recuperaNumeroDeContas(): int
{
    return self::$numeroDeContas;
}

abstract protected function percentualTarifa(): float;

}

Oi Vanderson, beleza?

Na sua classe SaldoInsuficienteException você colocou o namespace correto? Verifique se foi isso.

Caso todos seus arquivos estejam no mesmo namespace você não precisa do use Alura\Banco\Modelo\Conta{Titular,SaldoInsuficienteException}; e que também está incorreto por que está faltando \ após Conta : use Alura\Banco\Modelo\Conta\{Titular,SaldoInsuficienteException}.