• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tratamento de exceções
 

Tratamento de exceções

on

  • 3,022 views

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

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

Statistics

Views

Total Views
3,022
Views on SlideShare
3,014
Embed Views
8

Actions

Likes
1
Downloads
37
Comments
0

1 Embed 8

http://www.slideshare.net 8

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tratamento de exceções Tratamento de exceções Presentation Transcript

    • Tratamento de ExceçõesProf. douglas.frari@gmail.com
      LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
    • Alunos para Apresentação
      Rosemberg Lima ( rosemberg_lima@hotmail.com )
      Augusto Henrique ( augustodutraleal_@hotmail.com )
      Jonas Glauciano ( jonas_glauciano@hotmail.com )
      Wesley Galindo ( wesley-galindo@hotmail.com )
      Joseildo Soares ( jonhi14@hotmail.com )
      Renato Vasconcelos ( renato_cesar45@hotmail.com )
      Sivaldo Severino ( silvado-14@hotmail.com )
    • Conteúdo de Apresentação
      O que é?
      Pra que serve?
      Vantagens
      Exemplo Positivo
      Exemplo Negativo
      Outros Exemplos
      Dificuldades/Soluções
    • O que é?
      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.  
    • Tipos de Exceção
      Existem três categorias de exceções: Erro, Falha e Exceção de Contingência representadas respectivamente pelas classes: Error,  RuntimeException e Exception.
    • Para que serve?
      Por que usar o tratamento de exeções?        -Encontrar e Tratar erros
      Instruções condicionais vs Tratamento de exeções
      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)
      Tratamento de exeções        -Tratão áreas de possiveis erros        -Tratamento especificado de exeções        -Tratamento de todas a exeções do mesmo tipo
    • -Try : Aponta onde está o erro-Catch: É onde manipula o erro-Finaly– É executado  depois do bloco try catch
    • Categorias de Exceção
      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.
      Ex: StackOverflowError.
      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.
      Exceção de Contingência (Exception): Esta exceção é mais simples, pois ela pode ou não pode ser causada pela aplicação.
      Ex: FileNotFoundException.
    • Vantagens...
      Trata condições incomuns que interrompem a operação normal da classe;
      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;
    • Fluxo try-catch-finally
    • Invocação de Método e Lançamento de Exceções
    • Validações
      Evite sempre o bloco de tratamento de exceções Try/Catch para fazer validações simples, como por exemplo cálculos, conversões, etc..
      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.
      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:
    • Código ruim
      try
      {
      IReaderreader = (IReader)e.Data; reader.ExecuteOperation();
      }
      catch (InvalidCastException)
      {
      Response.Write("Tipo incompatível.");
      }
      try
      {
      int id = Convert.ToInt32(Request.QueryString["Id"]);
      this.BindForm(id);
      }
      catch (InvalidCastException)
      {
      Response.Write("Id inválido.");
      }Try
      Dimreader As IReader = DirectCast(e.Data, IReader)
      reader.ExecuteOperation()
      Catch ex As InvalidCastException
      Response.Write("Tipo incompatível.")
      EndTry
      Try
      Dim id As Integer = Convert.ToInt32(Request.QueryString("Id"))
      Me.BindForm(id)
      Catch ex As InvalidCastException
      Response.Write("Id inválido.")
      EndTry
    • Código Reformulado
      else
      {
      Response.Write("Id inválido.");
      }Dimreader As IReader = TryCast(e.Data, IReader)
      IfNotIsNothing(reader) Then
      reader.ExecuteOperation()
      Else
      Response.Write("Tipo incompatível.")
      EndIf
      Dim id As Integer = 0
      IfInteger.TryParse(Request.QueryString("Id"), id)
      Me.BindForm(id)
      Else
      Response.Write("Id inválido.")
      Endif
      IReaderreader = (IReader)e.Data as IReader;
      if(reader != null)
      {
      reader.ExecuteOperation();
      }
      else
      {
      Response.Write("Tipo incompatível.");
      }
      int id = 0;
      if(int.TryParse(Request.QueryString["Id"], out id))
      {
      this.BindForm(id);
      }
    • Conclusão
      Boas práticas de programação são sempre bem-vindas em qualquer tipo de linguagem.
      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.
      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.
    • Outros Exemplos
      Ao executar esta classe sem informar nenhum argumento e, ao tentar acessar diretamente,
      conforme o exemplo descrito, uma exceção é obtida que interromperá a execução normal do programa, e a seguinte mensagem será mostrada:
    • Outros Exemplos
      SAÍDA
    • Dificuldades e Soluções