visual basic 2010 - (05) tratamento de exceções

24
Microsoft Visual Basic 2010 Tratamento de Exceções 07/02/2022 Fagner S. de Lima - Microsoft Visual Basic 2010 1

Upload: fagner-lima

Post on 21-Dec-2014

1.990 views

Category:

Technology


1 download

DESCRIPTION

Visual Basic.NET é uma linguagem de programação totalmente orientada a objetos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio .NET.O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte. Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objetos trouxe poder para a linguagem. A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferente de liguagens como o Visual C++, C#, etc. Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora os programadores Java que migram para a plataforma .NET da Microsoft prefiram o C#.Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objeto. Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram algumas dificuldades na utilização do Visual Basic.NET.Os desenvolvedores podem criar uma ampla gama de aplicativos Web, móveis, do Windows e do Office, com a mesma base .Net Framework, que tem atualmente a versão 4.0.

TRANSCRIPT

Page 1: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 1

Microsoft Visual Basic 2010

Tratamento de Exceções

Page 2: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 2

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.

Page 3: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 3

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).

Page 4: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 4

Tratamento de Exceções Estruturadas

O tratamento de exceções estruturadas (Structured Exception Handling - SEH) é uma estratégia para codificar o programa de uma aplicação para tratar tanto as exceções de hardware quanto as exceções de software.

Dessa forma, o código para tratamento de exceções se torna unificado e mais consistente por tratar tanto as exceções de hardware quanto as exceções de software.

Seções do código que estiverem propensas a gerarem exceções como, por exemplo, cálculos, acesso a banco de dados, operações com arquivos etc. (MACKENZIE e SHARKEY, 2003).

Page 5: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 5

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.

Page 6: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 6

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 é:

Page 7: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 7

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 é:

Page 8: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 8

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).

Page 9: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 9

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.

Page 10: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 10

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.

Page 11: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 11

A seção Catch

A imagem mostra a mensagem exibida pela seção de tratamento de exceção genérica do programa.

Page 12: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 12

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.

Page 13: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 13

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.

Page 14: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 14

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."

Page 15: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 15

Blocos Try...End Try Aninhados

Page 16: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 16

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.

Page 17: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 17

A seção Finally

Page 18: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 18

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.

Page 19: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 19

Lançamento de Exceções

Page 20: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 20

Lançamento de Exceções

Mensagem exibida com o lançamento da exceção genérica:

Page 21: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 21

Microsoft Visual Basic 2010

Conclusão

Page 22: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 22

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 Estruturadohttp://msdn.microsoft.com/pt-br/library/sf1hwa21.aspx

Page 23: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 23

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

Page 24: Visual Basic 2010 - (05) Tratamento de Exceções

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 24

Referências

Universidade Estácio de Sá Microsoft

http://msdn.microsoft.com/pt-br/library/vstudio/2x7h1hfk(v=vs.100).aspx