Tratamento de exceções

3,064 views

Published on

Trabalho desenvolvido para apresentação sobre Tratamento de Exceções pelos alunos da FAFICA - CArauru. Disciplina: Programação Orientada a Objeto - Prof. Douglas Frari

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,064
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
49
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tratamento de exceções

  1. 1. Tratamento de ExceçõesProf. douglas.frari@gmail.com <br />LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS<br />
  2. 2. Alunos para Apresentação<br />Rosemberg Lima ( rosemberg_lima@hotmail.com )<br />Augusto Henrique ( augustodutraleal_@hotmail.com )<br />Jonas Glauciano ( jonas_glauciano@hotmail.com ) <br />Wesley Galindo ( wesley-galindo@hotmail.com )<br />Joseildo Soares ( jonhi14@hotmail.com )<br />Renato Vasconcelos ( renato_cesar45@hotmail.com )<br />Sivaldo Severino ( silvado-14@hotmail.com )<br />
  3. 3. Conteúdo de Apresentação<br />O que é?<br />Pra que serve?<br />Vantagens<br />Exemplo Positivo<br />Exemplo Negativo<br />Outros Exemplos<br />Dificuldades/Soluções<br />
  4. 4. O que é?<br />Exceção é um evento que acontece durante a execução de um programa corrompendo o curso normal do seu fluxo lógico.  Em Java exceções são representadas por uma hierarquia particular de objetos. A classe raiz que representa uma exceção é Throwable.  <br />
  5. 5. Tipos de Exceção<br />Existem três categorias de exceções: Erro, Falha e Exceção de Contingência representadas respectivamente pelas classes: Error,  RuntimeException e Exception.<br />
  6. 6. Para que serve?<br />Por que usar o tratamento de exeções?        -Encontrar e Tratar erros<br />Instruções condicionais vs Tratamento de exeções<br />Instruções condicionais                 - Instruções tratam de condiçõesEx: Um programador poe uma instrução If...Else que se o usuarionao digitarvalores válidos ,informa que está errado.(Isto não é um erro, apenas a condição esperada nao foi digitada)<br />Tratamento de exeções        -Tratão áreas de possiveis erros        -Tratamento especificado de exeções        -Tratamento de todas a exeções do mesmo tipo<br />
  7. 7. -Try : Aponta onde está o erro-Catch: É onde manipula o erro-Finaly– É executado  depois do bloco try catch<br />
  8. 8. Categorias de Exceção<br />Erro (Error): É uma das exceção mais graves, pois se ela acontece a própria aplicação não consegue resolver o problema, e que existe realmente alguma coisa muito errada na aplicação. <br /> Ex: StackOverflowError.<br />Falha (RunTimeException): É uma exceção mais leve, pois a aplicação irá rodar, mas provavelmente a mesma não irá funcionar corretamente. Ex: IllegalArgumentException, NullPointerException.<br />Exceção de Contingência (Exception): Esta exceção é mais simples, pois ela pode ou não pode ser causada pela aplicação. <br />Ex: FileNotFoundException.<br />
  9. 9. Vantagens...<br />Trata condições incomuns que interrompem a operação normal da classe;<br />Colocar as intruções passíveis de gerar exceções dentro bloco try. Exceções geradas durante a execução deste bloco podem ser detectadas e tratadas num bloco catch;<br />
  10. 10. Fluxo try-catch-finally<br />
  11. 11. Invocação de Método e Lançamento de Exceções<br />
  12. 12. Validações <br />Evite sempre o bloco de tratamento de exceções Try/Catch para fazer validações simples, como por exemplo cálculos, conversões, etc..<br /> Há sempre uma alternativa mais performática e ao mesmo tempo mais elegante de fazer essas operações para evitar todo o overhead que existe em um bloco Try/Catch. <br />Para exemplifcar isso, podemos citar alguns exemplos de códigos onde teremos primeiramente o código ruim e, em seguida, o mesmo código já reformulado: <br />
  13. 13. Código ruim<br />try<br />{<br />IReaderreader = (IReader)e.Data; reader.ExecuteOperation();<br />}<br />catch (InvalidCastException)<br />{<br />Response.Write("Tipo incompatível.");<br />}<br />try<br />{<br />int id = Convert.ToInt32(Request.QueryString["Id"]);<br />this.BindForm(id);<br />}<br />catch (InvalidCastException)<br />{<br />Response.Write("Id inválido.");<br />}Try<br />Dimreader As IReader = DirectCast(e.Data, IReader)<br />reader.ExecuteOperation()<br />Catch ex As InvalidCastException<br />Response.Write("Tipo incompatível.")<br />EndTry<br />Try<br />Dim id As Integer = Convert.ToInt32(Request.QueryString("Id"))<br /> Me.BindForm(id)<br />Catch ex As InvalidCastException<br />Response.Write("Id inválido.")<br />EndTry<br />
  14. 14. Código Reformulado<br />else<br />{<br />Response.Write("Id inválido.");<br />}Dimreader As IReader = TryCast(e.Data, IReader)<br />IfNotIsNothing(reader) Then<br />reader.ExecuteOperation()<br />Else<br />Response.Write("Tipo incompatível.")<br />EndIf<br />Dim id As Integer = 0<br />IfInteger.TryParse(Request.QueryString("Id"), id)<br /> Me.BindForm(id)<br />Else<br />Response.Write("Id inválido.")<br />Endif<br />IReaderreader = (IReader)e.Data as IReader;<br />if(reader != null)<br />{<br />reader.ExecuteOperation();<br />}<br />else<br />{<br />Response.Write("Tipo incompatível.");<br />}<br />int id = 0;<br />if(int.TryParse(Request.QueryString["Id"], out id))<br />{<br />this.BindForm(id);<br />}<br />
  15. 15. Conclusão<br />Boas práticas de programação são sempre bem-vindas em qualquer tipo de linguagem.<br />Claro que as técnicas não param por aqui. Existem muitas outras técnicas e benefícios relacionados a cada uma delas que este artigo não contempla. <br />Este artigo dá apenas uma visão de técnicas que devem ser utilizadas no desenvolvimento de aplicações baseadas na plataforma .NET para tirar um melhor proveito da linguagem, não perdendo performance.<br />
  16. 16. Outros Exemplos<br />Ao executar esta classe sem informar nenhum argumento e, ao tentar acessar diretamente,<br />conforme o exemplo descrito, uma exceção é obtida que interromperá a execução normal do programa, e a seguinte mensagem será mostrada:<br />
  17. 17. Outros Exemplos<br />SAÍDA <br />
  18. 18. Dificuldades e Soluções<br />

×