Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que eu consigo criar uma classe que extende de Error??

No video Hiearquia de exeções o professor diz que nao podemos criar novos erros, apenas exeções, disse que a parte dos erros é para o desenvolvimento interno do PHP. Eu achei que não poderia criar novas classes de erros que instanciassem da classe Error, mas eu consigo.

  class ErroCriadoPorMim extends Error{

    }

    try{
          throw new ErroCriadoPorMim("mensagem");
    }catch(Error $erro){
          cho "Capturei o erro, a mensagem é: ".$erro->getMessage().PHP_EOL;
    }

Isso ai da totalmente certo, então fiquei sem intender a parte que ele disse que nao podemos criar novos erros, apenas exeções, alguem sabe me dizer o por que?

1 resposta
solução!

Oi, Tiago, como vai?

Sentimos muito pela demora em te retornar.

Acredito que quando o professor diz que não se pode criar novos erros ele se refere à erros próprios da linguagem PHP, erros que foram definidos na criação da linguagem. No seu exemplo, está sendo criado um erro que estende a classe Error definida no PHP, isso é possível de se fazer, igual fazemos com exceções, mas não é recomendado.

A classe Error é a base para todas as exceções de erros internos do PHP, ou seja, ela é utilizada para gerar todas as exceções de erros. Então, perceba que as exceções são uma abstração acima da classe Error, desta forma, não faz muito sentido criarmos novos erros, mas sim exceções.

Documentação oficial da classe Error: classe Error

Outra coisa, a recomendação da comunidade do PHP é utilizar exceções para controlar o fluxo dos códigos.

Espero que ajude.

Caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software