To tendo um problema que aparentemente envolve a localização dos arquivos, revisei a aula algumas vezes seguindo passo a passo, me orientei pelo console e consultei o chatgpt, e não consigo resolver o problema. Alguém consegue me ajudar?
organização da pasta: código de notaInvalidaException.php:
<?php
namespace ScreenMatch\Exception;
class NotaInvalidaException extends \InvalidArgumentException {
public function __construct() {
parent::__construct('Nota precisa ser entre 0 a 10');
}
}
trecho de comAvaliacao.php que usa o notaInvalidaException:
<?php
namespace screenMatch\models;
use ScreenMatch\Exception\NotaInvalidaException; // Corrigido para Exception
trait comAvaliacao {
private array $notas = [];
/**
* @throws NotaInvalidaException Se a nota for negativa ou maior do que 10
*/
public function avalia(float $nota): void {
if ($nota < 0 || $nota > 10) {
throw new NotaInvalidaException();
}
$this->notas[] = $nota;
}
trecho de index.php onde eu apliquei um caso onde o notaInvalidaException imprimiria a mensagem de erro, pois uma das notas seria maior que 10:
<?php
require 'autoload.php';
use screenMatch\models\{ Filme, Episodio, Serie, Genero, Titulo };
use ScreenMatch\Exception\NotaInvalidaException;
use screenMatch\calculos\{ CalculadoraDeMaratona, ConversorNotaEstrela };
echo "Bem-vindo ao ScreenMatch\n";
$filme = new Filme(
'Maria Antonieta',
2018,
Genero::Drama,
180,
);
try {
$filme->avalia(10);
$filme->avalia(15);
$filme->avalia(9.6);
$filme->avalia(9.8);
} catch (NotaInvalidaException $e) {
echo 'Erro> ' . $e->getMessage() . "\n";
}
por fim, a mensagem de erro, que eu compreendi mas não importa o que eu altere, ela continua aparecendo:
PS C:\Users\Família Setragni\Documents\Cursos\Alura\Programação\aprendaProgramarEmPHPcomOrientacaoAobjetos\phpUseInterfacesNamespacesTraitsEExcecoes\screenMatch>php index.php
Bem-vindo ao ScreenMatch
Fatal error: Uncaught Error: Class "ScreenMatch\Exception\NotaInvalidaException" not found in C:\Users\Família Setragni\Documents\Cursos\Alura\Programação\aprendaProgramarEmPHPcomOrientacaoAobjetos\phpUseInterfacesNamespacesTraitsEExcecoes\screenMatch\src\models\comAvaliacao.php:15 Stack trace: #0 C:\Users\Família Setragni\Documents\Cursos\Alura\Programação\aprendaProgramarEmPHPcomOrientacaoAobjetos\phpUseInterfacesNamespacesTraitsEExcecoes\screenMatch\index.php(21): screenMatch\models\Titulo->avalia(15.0) #1 {main} thrown in C:\Users\Família Setragni\Documents\Cursos\Alura\Programação\aprendaProgramarEmPHPcomOrientacaoAobjetos\phpUseInterfacesNamespacesTraitsEExcecoes\screenMatch\src\models\comAvaliacao.php on line 15