Programação Estruturada e Orientada a Objetos. Tratamento de Exceções



Documentos relacionados
Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

Capítulo 5. Tratamento de excepções

1.6. Tratamento de Exceções

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução


O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução.

Tratamento de Exceções. Alberto Costa Neto DComp - UFS

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Java. Marcio de Carvalho Victorino

UNIVERSIDADE FEDERAL DO PARANÁ

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

AULA Uma linguagem de programação orientada a objetos

Erros, exceçõ. ções e asserçõ

Programação de Computadores - I. Profª Beatriz Profº Israel

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Parte I Princípios básicos do Microsoft.NET Framework

Prof. Esp. Adriano Carvalho

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

Guia de Fatores de Qualidade de OO e Java

Prototype, um Design Patterns de Criação

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

JDBC. Java DataBase Connectivity

Professor: Douglas Sousa Cursos de Computação

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

JavaScript 2.0X X

Comando de Seleção: Switch

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Java 2 Standard Edition Como criar classes e objetos

EMENTA DO CURSO. Tópicos:

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

2 Orientação a objetos na prática

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Programação Estruturada e Orientada a Objetos REVISÃO

Documentação Usando o Javadoc

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

DESENVOLVIMENTO DE SOFTWARE II. Aula 07 A linguagem de programação C# e sua sintaxe

Elementos de programação em C

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

FBV - Linguagem de Programação II. Um pouco sobre Java

Introdução a Threads Java

Análise e Projeto Orientados por Objetos

1.2 Tipos de Sistemas Operacionais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Processos e Threads (partes I e II)

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Everson Scherrer Borges João Paulo de Brito Gonçalves

Fundament n os s da platafo f rm r a. NE N T André Menegassi

JDBC Java Database Connectivity

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

José Romildo Malaquias

insfcanceof new public switch transient while byte continue extends for int null

Visual Basic.NET. Universidade Federal da Bahia. Departamento de Ciência da Computação. Disciplina MATA76 Linguagens para Aplicação comercial.

Introdução ao C# . Visão geral do.net Framework

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Monitoramento de Sistemas P05.002

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

Sistemas Operacionais. Prof. André Y. Kusumoto

Tipos de sistemas operacionais

Conceitos de Linguagens de Programação

Desenvolvimento de Aplicações para Internet Aula 8

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Introdução a Java. Hélder Nunes

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Transcrição:

Programação Estruturada e Orientada a Objetos Tratamento de Exceções 2013

O que veremos hoje? Introdução Tratamento de exceções Exercícios Transparências baseadas no material do Prof. Gilbert Azevedo

Referencias Bibliográficas Introduction to C# Programming with Microsoft.Net Microsoft Official Course 2609A Microsoft Visual C# 2005 - Passo a passo John Sharp, Bookman, 2007 Microsoft Asp.Net Passo a passo George Sheperd, Bookman, 2007 Microsoft VS 2005 Express Edition Documentation

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

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

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

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

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

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

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)

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

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();

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());

Exceções Comuns do CLR

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");

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");

Dúvidas