1
resposta

problema de importação

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: print mostrando a disposição das pastas e arquivos no meu projetocó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

1 resposta

Oi Alexandra!

Dá uma confirmada, mas o problema parece ser de Case-sensitive, por exemplo, ScreenMatch é diferente de screenMatch. Utilize ScreenMatch para todos.

Espero ter ajudado e bons estudos.