Olá, pessoal.
Meu código é esse:
<?php
namespace src\Excecoes;
class NomeCurtoException extends \DomainException {
public function __construct(){
$mensagem = "Poucas letras para um nome.";
parent::__construct($mensagem);
}
}
Na classe Pessoa.php:
protected function validarNome(string $nome){
if(strlen($nome) < 4){
throw new NomeCurtoException();
}
}
No arquivo de teste:
<?php
require_once 'autoload.php';
use src\Titular;
use src\Excecoes\NomeCurtoException;
use src\Excecoes\SaldoInsuficienteException;
use src\Modelo\CPF;
use src\Modelo\Endereco;
use src\ContaCorrente;
$endereco = new Endereco("rua A", "num 1", "B", "C");
$cpf = new CPF("123.456.789-10");
try{
$contaUm = new ContaCorrente(new Titular("J", $cpf, $endereco));
$contaUm->depositar(100);
$contaUm->sacar(500);
} catch(InvalidArgumentException $e){
echo "Valor incorreto para deposito. Refaca.".PHP_EOL;
} catch(NomeCurtoException $e){
echo $e->getMessage();
echo "Nome tem que ter pelo menos 4 caracteres".PHP_EOL;
} catch(SaldoInsuficienteException $e){
echo $e->getMessage().PHP_EOL;
}
$contaUm->exibirConta();
Resultado:
C:\Users\Rômulo\Documents\Projetos-PHP\poo-php>php banco.php Voce tentou sacar 525, mas so tem 100 em conta CPF: 123.456.789-10 Nome: J Saldo: 100
Quando rodo o arquivo, ele ainda passa o nome com menos de 4 caracteres. Não consigo entender por que isso acontece. Já fiz testes com os valores de saque e depósito e tá tudo ok. Só o do nome que não executa. Alguém pode me ajudar, por favor?