Buscar

visualbasic2010-04tratamentodeexcees-130404082243-phpapp01

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Microsoft Visual Basic 2010
Tratamento de Exceções
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
1
Objetivos
Exceções.
Tratamento de Exceções Estruturadas.
Tipos de Exceção.
Bloco Try...End Try.
A seção Catch.
Blocos Try...End Try Aninhados.
A seção Finally.
Lançamento de Exceções.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
2
2
Exceção
Exceção é um erro no fluxo normal de execução do código de um programa de uma aplicação. O.NET framework oferece uma forma unificada de identificar e tratar exceções entre todas as linguagens de programação .NET (BALENA, 2006).
Há dois tipos de exceções: exceções de hardware e exceções de software. As exceções de hardware são causadas por erros do programa no que se refere a hardware como, por exemplo, violação de acesso a endereços de memória. Enquanto as exceções de software são causadas por erros do programa no que se refere a software como, por exemplo, atribuir um valor incompatível a uma variável ou divisão por zero (MACKENZIE e SHARKEY, 2003).
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
3
Tratamento de Exceções Estruturadas
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
4
Tipos de Exceções
Os tipos de exceções derivam da classe System.Exception que é definida no .NET framework.
Os principais tipos de exceção são:
ArgumentException;
ArgumentNullException;
ArgumentOutOfRangeException;
IndexOutOfRangeException;
NotImplementedException;
OutOfMemoryException;
OverflowException;
FileNotFoundException.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
5
O Bloco Try ... End Try
As palavras-chave Try... End Try delimitam o bloco de códigos protegido para tratar as exceções que ocorrerem, onde Try delimita o início do bloco e End Try delimita o final do bloco.
A sintaxe é:
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
6
A seção Catch
A palavra-chave Catch marca a seção do bloco que captura e trata as exceções que podem eventualmente ocorrer.  Em geral, usa-se uma seção Catch para capturar cada tipo de exceção e uma seção Catch, chamada genérica, no final para capturar todos os demais tipos de exceções que não foram capturados pelas seções Catch anteriores.
A sintaxe é:
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
7
A seção Catch
O exemplo a seguir declara a variável i do tipo Decimal e atribui o valor 10. Declara a variável j do Decimal e atribui o valor zero. Define a divisão de i por j sem captura e tratamento de exceção, que ao ser executado é abortado por gerar uma exceção de divisão por zero (DivideByZeroException).
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
8
A seção Catch
A imagem mostra a janela de exceção de divisão por zero sem tratamento, apresentada ao se executar o programa pelo IDE do Visual Basic 2010 Express.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
9
A seção Catch
O exemplo a seguir foi modificado para realizar a captura e o tratamento da exceção genérica, ou seja, de qualquer tipo de exceção.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
10
A seção Catch
A imagem mostra a mensagem exibida pela seção de tratamento de exceção genérica do programa.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
11
A seção Catch
O exemplo a seguir foi modificado para na primeira seção Catch capturar e tratar a exceção DivideByZeroException e na segunda seção Catch capturar e  tratar uma exceção genérica, ou seja, qualquer tipo de exceção.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
12
A seção Catch
Ao executar o programa, a primeira seção Catch captura a exceção DivideByZeroException e exibe a mensagem mostrada na imagem.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
13
Blocos Try...End Try Aninhados
Os blocos Try...End Try podem ser aninhados.
O exemplo a seguir define um bloco Try...End Try externo que contém um outro bloco Try...End Try interno. Se ocorrer uma exceção na abertura do arquivo, o programa exibe a mensagem "Exceção na abertura do arquivo.", e se após a abertura do arquivo sem exceção ocorrer uma exceção na leitura do arquivo, o programa exibe a mensagem "Exceção na leitura do arquivo."
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
14
Blocos Try...End Try Aninhados
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
15
A seção Finally
A seção Finally define o código que deverá ser sempre executado, sem ou com a ocorrência de uma exceção, antes de terminar o bloco Try...End Try. Em geral, contém o código para liberar recursos alocados no bloco Try...End Try ou o código comum a ser executado antes de terminar o bloco Try...End Try.
O exemplo a seguir foi modificado para conter a seção Finally, que sempre emite um sinal sonoro (Beep()), antes de terminar o bloco Try...End Try.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
16
A seção Finally
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
17
Lançamento de Exceções
Em algumas situações você pode desejar lançar uma exceção para que esta seja tratada por uma rotina de tratamento de exceção ou para gerar uma exceção.
A sintaxe da declaração do lançamento da exceção é:
Throw [expressão]
O exemplo a seguir foi modificado para lançar uma exceção genérica com a mensagem "Divisor j igual a zero" se o valor da variável j for igual a zero. Como a variável j é declarada e inicializada com valor igual a zero, o programa lança a exceção, que é capturada pela seção Catch, a qual exibe a mensagem "Ocorreu uma exceção: Divisor j igual a zero.", conforme mostra a imagem.
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
18
Lançamento de Exceções
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
19
Lançamento de Exceções
Mensagem exibida com o lançamento da exceção genérica:
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
20
Microsoft Visual Basic 2010
Conclusão
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
21
Saiba mais
Introdução ao Tratamento de Exceção:
http://msdn.microsoft.com/pt-br/library/c68xfk56.aspx.
Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic:
http://msdn.microsoft.com/pt-br/library/8a9f2ew0.aspx
Classe Exception:
http://msdn.microsoft.com/pt-br/library/system.exception.aspx
Como Capturar uma exceção:
http://msdn.microsoft.com/pt-br/library/ys1b32h3.aspx
Declaração Try... Catch... Finally... End Try :
http://msdn.microsoft.com/pt-br/library/fk6t46tz.aspx
Visão Geral do Tratamento de Exceção Não Estruturado
http://msdn.microsoft.com/pt-br/library/sf1hwa21.aspx
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
22
Saiba mais
Declaração On Error:
http://msdn.microsoft.com/pt-br/library/5hsw66as.aspx
Quando Usar Manipulação de Exceção Estruturada ou Não Estruturada:
http://msdn.microsoft.com/pt-br/library/s74yzzb5.aspx
Como Lançar uma exceção:
http://msdn.microsoft.com/pt-br/library/z7w9ff54.aspx
Declaração Throw:
http://msdn.microsoft.com/pt-br/library/ty79csek.aspx
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
23
Referências
Universidade Estácio de Sá
Microsoft
http://msdn.microsoft.com/pt-br/library/vstudio/2x7h1hfk(v=vs.100).aspx
11/08/2013
Fagner S. de Lima - Microsoft Visual Basic 2010
24

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes