Baixe o app para aproveitar ainda mais
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
Compartilhar