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