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

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

Tecnologia para Web Tratamento de Exceções

Apresentações semelhantes


Apresentação em tema: "Tecnologia para Web Tratamento de Exceções"— 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). 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. O termo exception é a abreviação para a frase “exception event” Quando ocorre um erro em um método, este cria um objeto e envia-o para a CLR, finalizando imediatamente o método, sem que sua execução chegue ao final. 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. A pergunta “Onde pode ocorrer uma exceção?” seria é algo muito comum de ser perguntado, porém sua resposta é tão vasta que é difícil responder com exatidã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 harware como discos cheios, memórias, etc; erro de programação. O método 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 a técnica da orientação a objetos. A grande vantagem das linguagens que permitem o tratamento de exceções é forçar o programador a se preocupar com situações que podem acarretar exceções. Uma importante utilização das exceções é não permitir que objetos sejam criados em situações onde possa haver problemas. É importante ressaltar que o mecanismo de exceção é independente do valor de retorno de um método e pode ser utilizado para todos os métodos

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 Propriedade Descrição Data
Uma coleção de pares (chave/valor) que fornece detalhes adicionais sobre a exceção. HelpLink O link para o arquivo de ajuda que contém uma descrição da exceção. InnerException A exceção base que causou o problema. Message Texto descritivo da exceção. Source O nome da aplicação ou objeto que causou o problema. StackTrace Apresenta a seqüência de métodos chamados que dispararam o erro. TargetSite O 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

18


Carregar ppt "Tecnologia para Web Tratamento de Exceções"

Apresentações semelhantes


Anúncios Google