SlideShare une entreprise Scribd logo
1  sur  18
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

Contenu connexe

Tendances

Tendances (14)

Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
P aula2-trb teorico 1-ameacas
P aula2-trb teorico 1-ameacasP aula2-trb teorico 1-ameacas
P aula2-trb teorico 1-ameacas
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Aula 06
Aula 06Aula 06
Aula 06
 
Aula7 algoritmos computacionais
Aula7 algoritmos computacionaisAula7 algoritmos computacionais
Aula7 algoritmos computacionais
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla Escolha
 
122172 1444
122172 1444122172 1444
122172 1444
 
Programa de educação C.Habbowood
Programa de educação C.HabbowoodPrograma de educação C.Habbowood
Programa de educação C.Habbowood
 
O Bushidô do PHP
O Bushidô do PHPO Bushidô do PHP
O Bushidô do PHP
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch case
 
Aula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetiçãoAula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetição
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 

En vedette

Taxonomia e folksonomia: conceitos e aplicações
Taxonomia e folksonomia: conceitos e aplicaçõesTaxonomia e folksonomia: conceitos e aplicações
Taxonomia e folksonomia: conceitos e aplicaçõesGledson Antonio da Silva
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioCarlos Melo
 
Sistemas operacionais de redes sambacomo pdc
Sistemas operacionais de redes sambacomo pdcSistemas operacionais de redes sambacomo pdc
Sistemas operacionais de redes sambacomo pdcCarlos Melo
 
Lista de execicio sor-samba
Lista de execicio sor-sambaLista de execicio sor-samba
Lista de execicio sor-sambaCarlos Melo
 
Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Carlos Melo
 
Gerência - Aula 02
Gerência - Aula 02Gerência - Aula 02
Gerência - Aula 02Marcus Lucas
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -pptCarlos Melo
 
Pesquisa_accenture
Pesquisa_accenturePesquisa_accenture
Pesquisa_accentureCarlos Melo
 
Sistemas flexíveis de manufatura aula2
Sistemas flexíveis de manufatura   aula2Sistemas flexíveis de manufatura   aula2
Sistemas flexíveis de manufatura aula2Carlos Melo
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edCarlos Melo
 
Gerência - Aula 01
Gerência - Aula 01Gerência - Aula 01
Gerência - Aula 01Marcus Lucas
 
Prova segurança de redes
Prova segurança de redesProva segurança de redes
Prova segurança de redesCarlos Melo
 
Sistemas operacionais raid
Sistemas operacionais   raidSistemas operacionais   raid
Sistemas operacionais raidCarlos Melo
 
Aula-Medição de pressao
Aula-Medição de pressaoAula-Medição de pressao
Aula-Medição de pressaoCarlos Melo
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladderCarlos Melo
 
Aula - Medição de vazão
Aula - Medição de vazão Aula - Medição de vazão
Aula - Medição de vazão Carlos Melo
 
Nr 10-carlos-melo
Nr 10-carlos-meloNr 10-carlos-melo
Nr 10-carlos-meloCarlos Melo
 

En vedette (20)

Taxonomia e folksonomia: conceitos e aplicações
Taxonomia e folksonomia: conceitos e aplicaçõesTaxonomia e folksonomia: conceitos e aplicações
Taxonomia e folksonomia: conceitos e aplicações
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
 
Sistemas operacionais de redes sambacomo pdc
Sistemas operacionais de redes sambacomo pdcSistemas operacionais de redes sambacomo pdc
Sistemas operacionais de redes sambacomo pdc
 
Proftpd
ProftpdProftpd
Proftpd
 
Lista de execicio sor-samba
Lista de execicio sor-sambaLista de execicio sor-samba
Lista de execicio sor-samba
 
Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012Atividade sistemaso redes1-13122012
Atividade sistemaso redes1-13122012
 
Gerência - Aula 02
Gerência - Aula 02Gerência - Aula 02
Gerência - Aula 02
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -ppt
 
Pesquisa_accenture
Pesquisa_accenturePesquisa_accenture
Pesquisa_accenture
 
Abnt 2011
Abnt 2011Abnt 2011
Abnt 2011
 
Sistemas flexíveis de manufatura aula2
Sistemas flexíveis de manufatura   aula2Sistemas flexíveis de manufatura   aula2
Sistemas flexíveis de manufatura aula2
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 ed
 
Gerência - Aula 01
Gerência - Aula 01Gerência - Aula 01
Gerência - Aula 01
 
Prova segurança de redes
Prova segurança de redesProva segurança de redes
Prova segurança de redes
 
Sistemas operacionais raid
Sistemas operacionais   raidSistemas operacionais   raid
Sistemas operacionais raid
 
Aula-Medição de pressao
Aula-Medição de pressaoAula-Medição de pressao
Aula-Medição de pressao
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladder
 
Aula - Medição de vazão
Aula - Medição de vazão Aula - Medição de vazão
Aula - Medição de vazão
 
Perguntas nr10
Perguntas nr10Perguntas nr10
Perguntas nr10
 
Nr 10-carlos-melo
Nr 10-carlos-meloNr 10-carlos-melo
Nr 10-carlos-melo
 

Similaire à Tratar erros PHP com try catch e exceções

Similaire à Tratar erros PHP com try catch e exceções (11)

Ap algoritmosglauco
Ap algoritmosglaucoAp algoritmosglauco
Ap algoritmosglauco
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
Debug Otimizado
Debug OtimizadoDebug Otimizado
Debug Otimizado
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Como-aprender-poweshell-de-forma-divertida
Como-aprender-poweshell-de-forma-divertidaComo-aprender-poweshell-de-forma-divertida
Como-aprender-poweshell-de-forma-divertida
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08
 
Dicas para maratonas de programação
Dicas para maratonas de programaçãoDicas para maratonas de programação
Dicas para maratonas de programação
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Testando seus testes com Stryker.NET
Testando seus testes com Stryker.NET Testando seus testes com Stryker.NET
Testando seus testes com Stryker.NET
 

Tratar erros PHP com try catch e exceções

  • 1. TRATAMENTO DE ERROS COM PHP Bruno Quaresma - SENAI PE
  • 2. 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
  • 3. Forma errada de tratar 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 de tratar um erro Bruno Quaresma - SENAI PE
  • 6. Sim mas... Como capturar esse erro? • Utilizando o try e catch(); Bruno Quaresma - SENAI PE
  • 7. 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
  • 8. Bruno Quaresma - SENAI PE
  • 9. Resultado Bruno Quaresma - SENAI PE
  • 10. 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
  • 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. Bruno Quaresma - SENAI PE
  • 14. 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
  • 15. Bruno Quaresma - SENAI PE
  • 16. Bruno Quaresma - SENAI PE
  • 17. 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
  • 18. 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