TRATAMENTO DE ERROS COM PHP

         Bruno Quaresma - SENAI PE
Por que tratar os erros?
• Para podermos saber quais os erros que
  aconteceram e indicar para o sistema quais
  ações ele deve tomar;




                 Bruno Quaresma - SENAI PE
Forma errada de tratar um erro




            Bruno Quaresma - SENAI PE
E como tratar?
• Através do comando:
  – throw new Exception(‘Mensagem de erro’);




                  Bruno Quaresma - SENAI PE
Forma certa de tratar um erro




            Bruno Quaresma - SENAI PE
Sim mas... Como capturar esse erro?
• Utilizando o try e catch();




                   Bruno Quaresma - SENAI PE
Entendendo um pouco melhor
• O try, ele vai testar um bloco de código e caso
  seja lançada alguma exceção durante a
  execução desse código o catch() irá tratá-la;

• Assim que uma exceção é lançada dentro do
  try o php irá ver se a exceção foi definida em
  algum catch();


                  Bruno Quaresma - SENAI PE
Bruno Quaresma - SENAI PE
Resultado




            Bruno Quaresma - SENAI PE
Um pouco mais sobre o catch()
• Para que o catch() saiba que erro ele irá tratar
  nós passamos como parâmetro a classe da
  exceção com a variável que irá receber sua
  instância.
                                Classe
                                               Variável




                   Bruno Quaresma - SENAI PE
A classe Exception
• Essa classe é a classe pai de todas as exceções
  no PHP;
• Ela contém quatro métodos básicos:
  – getMessage() - Retornar a mensagem de erro.
  – getCode() - Retornar o código do erro.
  – getFile() - Retorna o caminho do arquivo onde a
    exceção foi gerada.
  – getLine() - Retorna o número da linha onde a
    exceção foi gerada.

                   Bruno Quaresma - SENAI PE
Criando exceções personalizadas
• Basta apenas criar uma classe que seja filha da
  classe Exception;




                  Bruno Quaresma - SENAI PE
Bruno Quaresma - SENAI PE
Posso tratar vários erros?
• Claro que SIM!;
• Um try suporta diversas exceções com seus
  respectivos catch();
• Mas, de que forma?




                 Bruno Quaresma - SENAI PE
Bruno Quaresma - SENAI PE
Bruno Quaresma - SENAI PE
Exercício
• Crie uma classe de conta bancária com os
  métodos:
  – saque();
  – deposito();
• Escreva quais os erros que podem acontecer e
  como eles podem ser resolvidos ou tratados;
• Depois, trate devidamente os erros que podem
  ser gerados;
• Ao final, tente executar todos os erros que você
  listou e verifique se eles foram devidamente
  tratados;
                   Bruno Quaresma - SENAI PE
Pesquisa
• Vimos que podemos gerar uma classe
  personalizada para o tratamento de erros de
  forma bem simples. Para se aprofundar no
  assunto você irá pesquisar “Exceções
  personalizadas no PHP” para debatermos na
  próxima aula.




                 Bruno Quaresma - SENAI PE

PHP - Tratamento de Erros

  • 1.
    TRATAMENTO DE ERROSCOM PHP Bruno Quaresma - SENAI PE
  • 2.
    Por que trataros erros? • Para podermos saber quais os erros que aconteceram e indicar para o sistema quais ações ele deve tomar; Bruno Quaresma - SENAI PE
  • 3.
    Forma errada detratar um erro Bruno Quaresma - SENAI PE
  • 4.
    E como tratar? •Através do comando: – throw new Exception(‘Mensagem de erro’); Bruno Quaresma - SENAI PE
  • 5.
    Forma certa detratar um erro Bruno Quaresma - SENAI PE
  • 6.
    Sim mas... Comocapturar esse erro? • Utilizando o try e catch(); Bruno Quaresma - SENAI PE
  • 7.
    Entendendo um poucomelhor • O try, ele vai testar um bloco de código e caso seja lançada alguma exceção durante a execução desse código o catch() irá tratá-la; • Assim que uma exceção é lançada dentro do try o php irá ver se a exceção foi definida em algum catch(); Bruno Quaresma - SENAI PE
  • 8.
  • 9.
    Resultado Bruno Quaresma - SENAI PE
  • 10.
    Um pouco maissobre o catch() • Para que o catch() saiba que erro ele irá tratar nós passamos como parâmetro a classe da exceção com a variável que irá receber sua instância. Classe Variável Bruno Quaresma - SENAI PE
  • 11.
    A classe Exception •Essa classe é a classe pai de todas as exceções no PHP; • Ela contém quatro métodos básicos: – getMessage() - Retornar a mensagem de erro. – getCode() - Retornar o código do erro. – getFile() - Retorna o caminho do arquivo onde a exceção foi gerada. – getLine() - Retorna o número da linha onde a exceção foi gerada. Bruno Quaresma - SENAI PE
  • 12.
    Criando exceções personalizadas •Basta apenas criar uma classe que seja filha da classe Exception; Bruno Quaresma - SENAI PE
  • 13.
  • 14.
    Posso tratar várioserros? • Claro que SIM!; • Um try suporta diversas exceções com seus respectivos catch(); • Mas, de que forma? Bruno Quaresma - SENAI PE
  • 15.
  • 16.
  • 17.
    Exercício • Crie umaclasse de conta bancária com os métodos: – saque(); – deposito(); • Escreva quais os erros que podem acontecer e como eles podem ser resolvidos ou tratados; • Depois, trate devidamente os erros que podem ser gerados; • Ao final, tente executar todos os erros que você listou e verifique se eles foram devidamente tratados; Bruno Quaresma - SENAI PE
  • 18.
    Pesquisa • Vimos quepodemos gerar uma classe personalizada para o tratamento de erros de forma bem simples. Para se aprofundar no assunto você irá pesquisar “Exceções personalizadas no PHP” para debatermos na próxima aula. Bruno Quaresma - SENAI PE