Exceções
Linguagem de Programação III
Mauro Lopes Carvalho Silva
Professor EBTT
DAI – Departamento Acadêmico de Informática
Campus Monte Castelo
Instituto Federal de Educação Ciência e Tecnologia do Maranhão
Linguagem de Programação III – 5º Período
Objetivos
• Nesta aula iremos apresentar como detectar e
tratar erros que podem ocorrer durante a execução
de uma aplicação. Ou seja, iremos abordar o
tratamento de exceções do C#. Ao final desta aula,
o aluno poderá implementar pequenas aplicações
que envolvem os conceitos abordados. Boa aula a
todos.
Linguagem de Programação III – 5º Período
Plano de Aula
• Exceções
–
–
–
–
O que é?
Sintaxe
Finally
Exceções do Usuário
Linguagem de Programação III – 5º Período
3
Exceções
O que é?
• Exceção é um erro que ocorre durante a execução
de uma aplicação. Por exemplo, uma aplicação pode
tentar abrir um arquivo que não existe, o que
configura uma exceção;
• No C#, todas as exceções são representadas por
classes. E todas elas devem herdar da classe
Exception, encontrada no namespace System;
• Classes derivadas de Exception:
• SystemException: suporta exceções geradas pelo CLR;
• ApplicationException: suporta exceções geradas pelas
aplicações. O programador pode criar suas próprias
classes de exceção herdando desta classe;
Linguagem de Programação III – 5º Período
4
Exceções
Exceções
• O tratamento de exceção é controlado por quatro
palavras-chave: try, catch, throw e finally;
• Os comandos que podem gerar uma exceção devem
estar em um bloco try. E quando uma exceção
ocorre em um bloco try, diz-se que ela foi
disparada;
• Esta exceção é capturada por um bloco catch,
entendido como um manipulador de exceções;
• Um programador pode disparar um exceção
“manualmente” usando a palavra-chave throw.
Linguagem de Programação III – 5º Período
5
Exceções
Exceções - Sintaxe
try {
//código que pode gerar exceção
}
catch (tipo-exceção1 [objeto-exceção]) {
//tratamento de tipo-exceção1
}
•
•
•
•
Não há try sem catch e vice-versa
O tipo-exceção é o tipo de exceção disparada. Quando uma exceção
é disparada, ela é capturada pelo bloco catch correspondente,
associado a um bloco try;
O tipo da exceção determinará qual bloco catch será executado,
ignorando os demais blocos catch se existirem;
Quando uma exceção é capturada, objeto-exceção recebe o valor da
exceção. O objeto-exceção não é obrigatório;
Se nenhuma exceção for disparada, o bloco try terminará
normalmente, o bloco catch correspondente será ignorado e a
execução do programa continuará após o último bloco catch.
Linguagem de Programação III – 5º Período
6
Exceções
Bloco try
Blocos catch
Linguagem de Programação III – 5º Período
7
Exceções
Exceções - finally
• Bloco de código executado independente do disparo
de uma exceção e também do tipo de exceção
disparada;
• Há situações em que é preciso executar um código
após o término de um bloco try/catch;
• Por exemplo, um método pode abrir um arquivo e,
pelo fato de ocorrer uma exceção, este arquivo
poderá ficar aberto. Então, este arquivo poderá ser
fechado em um bloco finally.
• Um bloco finally vem após a sequencia try/catch.
Linguagem de Programação III – 5º Período
8
Exceções
Exceções - Exceções do Usuário
• O mecanismo de exceção do C# permite que ao programador
criar suas próprias exceções;
• Para isto, basta definir uma classe de exceção derivada da
classe ApplicationException;
• Pela relação de herança, todos os métodos e propriedades de
Exception ficam disponíveis à classe de exceção do usuário;
• As propriedades públicas da classe Exception:
•
•
•
•
Message: contém a descrição da exceção;
Source: define ou retorna o nome da aplicação ou do objeto que
causou a exceção;
StackTrace: contém uma string com as chamadas aos métodos, na
pilha, que levaram à exceção;
TargetSite: indica o método que disparou a exceção;
Linguagem de Programação III – 5º Período
9
Dúvidas
Página do Professor Mauro:
http://www.dai.ifma.edu.br/~mlcsilva
Linguagem de Programação III – 5º Período
Próxima Aula
• Coleções.
Linguagem de Programação III – 5º Período
Download

Aula 9 - dai