A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tecnologia para Web Tratamento de Exceções Enrique Pimentel Leite de Oliveira

Apresentações semelhantes


Apresentação em tema: "Tecnologia para Web Tratamento de Exceções Enrique Pimentel Leite de Oliveira"— Transcrição da apresentação:

1

2 Tecnologia para Web Tratamento de Exceções Enrique Pimentel Leite de Oliveira

3 Tratamento de Exceções Definição: Uma exceção é um evento que ocorre durante a execução de um programa que interrompe o fluxo normal de suas instruções. A plataforma.Net oferece um mecanismo robusto para tratamento de exceções. –provêm da biblioteca System.Exception Os erros são tratados como objetos que encapsulam informações necessárias para resolvê-los. Esse mecanismo é conhecido como SEH (Structured Exception Handling).

4 Tratamento de Exceções Onde pode ocorrer uma exceção? Em geral a ocorrência de exceção abrange: –implementação incorreta da solução de um problema; –solicitação de uma tarefa que não está disponível; –utilização inconsistente de um objeto e de seus métodos. Algumas situações que podem gerar exceções: –erros de entrada de dados do usuário; –erros de dispositivos; –limitações físicas de hardware como: discos cheios, memórias, etc; –erro de programação.

5 Tratamento de Exceções A forma tradicional para tratamento das situações errôneas, seria retornar um código de erro onde fosse possível analisar o que é dado válido ou inválido. Porém, esta forma de programação não condiz com orientação a objetos. Em orientação a objetos, devemos utilizar exceções para tratar de situações onde erros podem ocorrer.

6 O objeto Exception O objeto Exception é a classe base para todas as exceções e define as propriedades que todas as exceções têm.

7 O objeto Exception PropriedadeDescrição DataUma coleção de pares (chave/valor) que fornece detalhes adicionais sobre a exceção. HelpLinkO link para o arquivo de ajuda que contém uma descrição da exceção. InnerExceptionA exceção base que causou o problema. MessageTexto descritivo da exceção. SourceO nome da aplicação ou objeto que causou o problema. StackTraceApresenta a seqüência de métodos chamados que dispararam o erro. TargetSiteO método que lançou a exceção atual.

8 Como tratar exceções Estrutura básica try catch finally: try { // Código a ser executado } catch (TipoExceção1 e) { // tratamento da exceção1 } catch (Exception e) // erro genérico { // tratamento genérico } finally { // Este bloco de código sempre será executado, havendo ou não exceção! }

9 Como tratar exceções Vale ressaltar que é possível adicionar quantos catches forem necessários, ordenando sempre do mais específico para o mais genérico. Quando uma exceção for gerada, apenas um bloco catch é executado, desviando o fluxo para o bloco finally (se este existir). O bloco finally será sempre executado independente da ocorrência de uma exceção

10 Exemplo try { // Código que gerará a exceção int x = 10; int y = 0; int z = x/y; //divisão por zero txtResult.Text = z.ToString(); // esta linha não será executada } catch (System.Exception e) { // Apresenta o erro txtResult.Text = e.Message; } finally { // Este bloco de código sempre será executado, ocorrendo ou não exceção! lblMsg.Text = Bloco finally executado!; }

11 Gerando ou lançando Exceções Vimos como tratar exceções, mas em alguns casos é necessário gerar exceções ou lançar essa exceção para que alguma classe acima trate-a. Para isso utilizamos o comando throw Exemplos: –throw new Exception(descrição); –throw new Exception(descrição, excecao_base);

12 Gerando ou lançando Exceções Para lançar uma exceção, simplesmente colocamos o comando: –throw; Isso faz com que a exceção ocorrida seja lançada. Normalmente utilizamos esse recursos em classes onde o tratamento de exceção não é necessário, como por exemplo classes de acesso a BD. Nesse caso a classe de regras de negócio deveria tratar a exceção.

13 Classes de Exceções definidas pelo usuário Na maioria dos casos, as classes de exceção da.Net Framework são suficientes para o tratamento das exceções dos programas. Porém em alguns casos a necessidade de criação de novas classes de exceções existem. Para criar novas classes de exceções é necessário que elas herdem direta ou indiretamente da classe ApplicationException.

14 Exemplo using System; namespace RaizQuadradaTest { class NumeroNegativoException: ApplicationException { public NumeroNegativoException(): base( Operação inválida para número negativo) { } public NumeroNegativoException(string msg): base( msg) { } public NumeroNegativoException(string msg, Exception inner): base(msg, inner) { }

15 Exemplo - Continuação Método da classe herdada de Form public double RaizQuadrada(double valor) { if (valor < 0) { throw new NumeroNegativoException(Não existe raiz quadrada de número negativo); } else return Math.Sqrt(valor); }

16 Exercício Criar um programa para demonstrar a utilização das exceções criadas pelo usuário. Além das exceções criadas, o programa deve tratar outras exceções que possivelmente ocorrerão durante os testes. Por exemplo: FormatException. Ao capturar um erro, o programa deve exibir uma mensagem de erro ao usuário contendo.

17 Bibliografia /arquitetura/nova/blocos_disp/ger_exceco es/exceptdotnet.htmhttp://www.msdnbrasil.com.br/Tecnologias /arquitetura/nova/blocos_disp/ger_exceco es/exceptdotnet.htm exceptions.docwww.msdnbrasil.com.br/docs/net/vstudio_ exceptions.doc ao/ler.aspx?id=3&cat=8http://www.rodrigobytes.com.br/programac ao/ler.aspx?id=3&cat=8

18


Carregar ppt "Tecnologia para Web Tratamento de Exceções Enrique Pimentel Leite de Oliveira"

Apresentações semelhantes


Anúncios Google