Programação Estruturada e Orientada a Objetos. Tratamento de Exceções - PDF
Download "Programação Estruturada e Orientada a Objetos. Tratamento de Exceções"
Gustavo Melgaço Mota
1 Programação Estruturada e Orientada a Objetos Tratamento de Exceções 2013
2 O que veremos hoje? Introdução Tratamento de exceções Exercícios Transparências baseadas no material do Prof. Gilbert Azevedo
3 Referencias Bibliográficas Introduction to C# Programming with Microsoft.Net Microsoft Official Course 2609A Microsoft Visual C# Passo a passo John Sharp, Bookman, 2007 Microsoft Asp.Net Passo a passo George Sheperd, Bookman, 2007 Microsoft VS 2005 Express Edition Documentation
4 Conteúdo Erros e Exceções Tratamento de Exceções em C# Instruções Try, Catch e Finally Classes de Exceções Exceções Comuns do CLR - common language runtime Gerando Exceções com Throw Definindo Novas Exceções
5 Erros Os erros em sistema computacionais podem ocorrer por vários motivos Comportamento imprevisível de usuários Falhas de hardware Problemas de conexão ou comunicação Falta de direito de acesso a recursos Erros de memória, alocação, estouro de capacidade Abordagens antigas utilizavam variáveis globais para identificar o erro A lógica do programa fica entrelaçada com o código do erro Códigos de erro numéricos não são significativos Condições de erro eram pouco documentadas
6 Exceções Linguagens de programação modernas sinalizam os erros utilizando exceções Exceções são objetos especiais que indicam um comportamento inesperado, interrompendo o fluxo de normal execução Tratamento robusto dos erros Separação do código principal do programa e do código da manipulação de erros Diferentes tipos de erros produzem objetos de exceções de classes distintas As classes de exceções são organizadas em uma hierarquia
7 Tratamento de Exceções O tratamento de exceções no C# é realizado através das instruções try-catch-finally try { // Instruções a serem executadas catch (TipoExceção erro) { // Tratamento de exceções de um tipo específico catch (Exception erro) { // Tratamento genérico de exceções finally { // Instruções sempre executadas, ocorram ou não erros
8 Bloco Try O bloco try é um bloco de execução protegida onde deve ser implementado o fluxo principal do programa O bloco try é obrigatório O C# tentará executar todas as instruções no bloco try Se nenhuma instrução gerar uma exceção, todas serão executadas Se ocorrer algum erro, a execução é pulada para os blocos catch ou finally. As instruções restantes no try são ignoradas Se nenhum catch capturar a exceção, ela é capturada pelo CLR e a execução do aplicativo pode ser encerrada, dependendo do tipo de erro
9 Bloco Catch O bloco catch é o bloco de manipulação da exceção onde devem ser implementados os tratamentos de erro O bloco catch é opcional Um bloco try pode possuir vários blocos catch Os manipuladores devem ser escritos do mais específico para o mais genérico A classe mais genérica de erro é a Exception A exceção é consumida no bloco catch, ou seja, a priori apenas um catch é executado
10 Bloco Finally No bloco finally são incluídas as instruções que devem necessariamente ser executadas, ocorram ou não erros O bloco finally é opcional Um bloco try possui apenas um bloco finally Blocos finally são utilizados para liberação de recursos como manipuladores de arquivos e conexões com bancos de dados Numa execução sem erros são executados os blocos try e finally Numa execução com erros são executados os blocos try (parcialmente), catch (de acordo com o tipo do erro) e finally (sempre)
11 Exemplo com Try Catch int a, b, c; try { a = int.parse(console.readline()); b = int.parse(console.readline()); c = (a / b); catch (FormatException erro) { Console.WriteLine("O valor digitado não é um número"); Console.WriteLine(erro.Message); catch (DivideByZeroException erro) { Console.WriteLine("Divisão por zero"); Console.WriteLine(erro.Message);
12 Exemplo com Try Finally string s; StreamReader file; file = new StreamReader(aArquivo, Encoding.Default); try { while ((s = file.readline())!= null) Console.writeline(s); finally { file.close();
13 Classes de Exceções Todas as exceções em C# são descendentes da classe System.Exception As exceções do CRL derivam de System.SystemException As exceções do usuário devem ser descendentes da classe System.ApplicationException catch (DivideByZeroException erro) { Console.wirteLine( erro.gettype().tostring()+"\r\n"+ erro.gettype().basetype.tostring()+"\r\n"+ erro.gettype().basetype.basetype.tostring()+"\r\n"+ erro.gettype().basetype.basetype.basetype.tostring()+"\r\n"+ erro.gettype().basetype.basetype.basetype.basetype.tostring());
14 Exceções Comuns do CLR
15 Levantando Exceções com Throw As exceções são levantadas (geradas) através da instrução throw seguida de um objeto de erro private string nomemes(int mes) { switch (mes) { case 1: return "Janeiro"; case 2: return "Fevereiro"; case 12: return "Dezembro"; default: throw new ArgumentOutOfRangeException ("Mês inválido");
16 Definindo Novas Exceções Para definir novas exceções é necessário descender uma classe de ApplicationException Definindo a classe public class EIdadeInvalida : ApplicationException { public EIdadeInvalida(string message): base(message) { Levantando a exceção throw new EIdadeInvalida("Idade mínima: 18 anos");
17 Dúvidas
Comando de Seleção: Switch
Linguagem de Programação C# Comando de Seleção: Switch Neste comando a execução segue os seguintes passos: 1. A expressão é avaliada; 2. O resultado da expressão é comparado com os valores das constantes
Aula 16 Tratamento de Exceções. Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013
Aula 16 Tratamento de Exceções Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013 Avisos Na aula do dia 23/10 (quarta-feira) os alunos que ainda não viram a prova, poderão ver em sala após a aula Na
MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014
MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP Curso Superior de Tecnologia em Sistemas para Internet 2/2014 1. Nomes e localização dos arquivos do projeto: O template
LINGUAGEM DE PROGRAMAÇÃO I 2 OBJETIVOS DA AULA 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
Introdução a Threads Java
Introdução a Threads Java Prof. Gerson Geraldo Homrich Cavalheiro Universidade Federal de Pelotas Departamento de Informática Instituto de Física e Matemática Pelotas RS Brasil http://gersonc.anahy.org
Visual Basic.NET. Universidade Federal da Bahia. Departamento de Ciência da Computação. Disciplina MATA76 Linguagens para Aplicação comercial.
Universidade Federal da Bahia Departamento de Ciência da Computação Disciplina MATA76 Linguagens para Aplicação comercial. Aluno: Nailton Gonzaga dos Santos. Visual Basic.NET Salvador, setembro de 2008.
Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio
Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Terminologia Definições: Exceção é a ocorrência de uma condição anormal durante a execução de um método Falha
MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2012
MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP Curso Superior de Tecnologia em Sistemas para Internet 2/2012 1. Nomes e localização dos arquivos do projeto: O template
Tratamento de Exceções Carlos Bazilio Isabel Rosseti Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense Motivação prever na implementação do sistema situações
OO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca C Run-time library. Prof.
Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira
Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:
Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;
Arquivos de Textos no C - Básico
OpenStax-CNX module: m47676 1 Arquivos de Textos no C - Básico Joao Carlos Ferreira dos Santos This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 TRABALHANDO
Tratamento de Exceções Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 10 Tratamento de Exceções 1 Conceito Robustez: capacidade de um software continuar seu processamento mesmo sob condições anormais;
Redes de Computadores - 2010/1
Redes de Computadores - 2010/1 Miniprojeto Universidade Federal do Espírito Santo - UFES Professor: Magnos Martinello 20 de maio de 2010 1 1 Proposta A proposta do trabalho é reforçar o compreendimento
Especificação Técnica. Sistema: Automação Bancária Caso de Uso: Simular Empréstimo Bancário
Especificação Técnica Sistema: Automação Bancária Caso de Uso: Simular Empréstimo Bancário 1 Histórico de Revisões Data Versão Descrição Autor 10/01/2008 1.0 Criação da primeira versão da especificação