Você está na página 1de 17

Faculdade de Tecnologia de Teresina CET Tecnologia em Sistemas para Internet

Programao Orientada a Objetos


Manuel Gonalves da Silva Neto Esp. Engenharia de Software Esp. Gesto Pblica mail: manuel.pi@hotmail.com

Roteiro:
1)Introduo ao tratamento de Excesses. 2) Criao de Excesses personalizadas.

Prof. Manuel Gonalves da S. Neto

Excesses (Conceitos):
1 - Uma exceo um evento que interrompe o fluxo normal de processamento de uma classe. Este evento um erro de algum tipo. Isto causa o trmino anormal da classe. 2 - As excees so, resumidamente, eventos excepcionais. So erros que ocorrem durante a execuo de um determinado trecho de instruo, alterando o seu fluxo normal. Os erros podem ocorrer por diferentes motivos, por exemplo: erros de diviso por zero, acessar elementos em um array alm de seu prprio tamanho, entrada invlida, erro de acesso ao disco rgido, abertura de arquivo inexistente e estouro de memria.

Prof. Manuel Gonalves da S. Neto

Excesses (Conceitos):
1 - Uma exceo interrompe o fluxo de execuo do programa. Este fluxo segue a exceo e se o mtodo onde ela ocorrer no capturar, ela ser propagada (Lanada) para o mtodo que chamar este mtodo e assim por diante. Se no houver captura (Catch) da exceo, ela ir causar o trmino do programa, porm se ela for capturada o controle pode ser recuperado. 2 - Dentro de um cdigo, voc pode lanar uma exceo atravs da instruo throw, capturar excees atravs de um bloco try-catch e tambm projetar as suas prprias classes de excees.

Prof. Manuel Gonalves da S. Neto

Excesses (Conceitos):
1 - Existem dois tipos de excees, as verificadas e noverificadas. As excees verificadas acontecem quando ao chamar um mtodo que lana uma exceo, o compilador verifica se seu programa gerencia essas excees. Em geral as excees verificadas estendem a classe Exception (exemplos: IOException, FileNotFoundException). 2 - J as no verificadas estendem a classe RuntimeException ou Error (exemplos: NumberFormatException, IllegalArgumentException, NullPointerException).

Prof. Manuel Gonalves da S. Neto

Excesses (Conceitos):

Prof. Manuel Gonalves da S. Neto

Excesses (tente ou capture: try e catch):


1 - Cada exceo deve ser tratada em algum lugar no programa. Se uma exceo no tratada, impressa uma mensagem de erro e o programa termina. Para instalar um tratador de excees, voc deve colocar as instrues que podem causar uma exceo dentro de um bloco try e o tratador da exceo dentro da clusula catch. 2 Cada bloco try contm uma ou mais chamadas de mtodo que podem causar uma exceo e clusulas catch para todos os tipos de exceo que o bloco try pode tratar.

Prof. Manuel Gonalves da S. Neto

Excesses (tente ou capture: try e catch):


1 - A forma geral de um try-catch-finally :
try{ //instrues passveis de exceo neste bloco } catch (<exceptionType1> <varName1>){ //escreva a ao caso ocorra uma exceo deste tipo } catch (<exceptionTypeN> <varNameN>){ //escreva a ao caso ocorra uma exceo tipo N } finally { //escreva a ao caso ocorra ou no um erro ou exceo }
Prof. Manuel Gonalves da S. Neto
8

Excesses (tente ou capture: try e catch):

Prof. Manuel Gonalves da S. Neto

Exercitando:
1) Crie um array com 5 posies, tente inserir um elemento na posio 6 no seu programa. a) Trate esta exceo e exiba um erro ao inserir dado na posio 6. b) Utilize o bloco finally para exibir uma mensagem de programa executado com sucesso.

Prof. Manuel Gonalves da S. Neto

10

Excesses (Criando e lanando):


1 throw: (Cria a excesso) Faz com que um evento excepcional ocorra, ou seja, ele cria a excesso.

2 throws: (Utilizado na declarao do mtodo onde existe um throw interno) No caso de um mtodo causar uma exceo mas no captur-la, deve-se utilizar a palavra-chave throws para repassar esta para quem o chamou. Esta regra se aplica apenas para excees verificadas.

Prof. Manuel Gonalves da S. Neto

11

Excesses (Criando e lanando):


1 throws: (Mesma funo do try-catch ,mas utilizado na declarao do mtodo) 1 throw: (Cria a exceo, personalizada ou no.) Todos os tipos de excees levantadas no corpo de um mtodo devem ser declaradas na sua assinatura, Ex:
public void cadastrar(Conta conta) throws Exception { if (!contas.existe(numero)) { inserir(conta); else throw new Exception(numero); }

Prof. Manuel Gonalves da S. Neto

12

Criando excesses personalizadas:


1 Apesar de muitas classes de exceo j existirem no pacote java.lang, as classes de exceo embutidas no so suficientes para cobrir todas possibilidades de excees que podem ocorrer. Por essa razo, provvel criar nossas prprias excees. 1 Para criar nossa prpria exceo, teremos que criar uma classe que estenda a classe RuntimeException ou Exception. Deste modo, devemos customizar a classe de acordo com o problema a ser resolvido. Atributos de objeto e construtores podem ser adicionados na sua classe de exceo.

Prof. Manuel Gonalves da S. Neto

13

Criando excesses personalizadas:


public class MyException extends Exception { private double saldo; private String numero; public MyException(double saldo,String numero) { super ("Saldo Insuficiente!"); this.saldo = saldo; this.numero = numero; } public double getSaldo() { return saldo; } }
Prof. Manuel Gonalves da S. Neto
14

Utilizando excesses personalizadas:


public class Conta { ... public void debitar(double valor) throws MyException { if (valor <= saldo) saldo = saldo - valor; else { MyException e; e = new MyException(saldo,numero); throw e; } } }
Prof. Manuel Gonalves da S. Neto
15

Exercicio:
1 Crie uma classe Usuario contendo os atributos login , senha e email. Com esta classe faa o que se pede: a) Crie uma exceo que exibir uma mensagem de quantidade incorreta de caracteres caso senha digitada tenha menos de 8 caracteres. b) Crie uma exceo que ser lanada no caso de usuario e senha incorretos.

Prof. Manuel Gonalves da S. Neto

16

Referncias.
SANTANA, Osvaldo; GALESI, Thiago. Python e Django

Desenvolvimento gil de aplicaes web., So Paulo: Novatec, 2010. LAVIN, Peter. Object-Oriented PHP, Concepts, Techniques and Code, San Francisco: No Starch Press, 2006 MACLAUGHLIN, Brett D.; POLLICE, Gary; WEST, David. Head First Object-Oriented Analysis and Design , United States: Oreylli, 2007. Apostila CAELUM.: FJ-11 Java e Orientao a Objetos. So Paulo: Caelum, 2011. Apostila CAELUM.: FJ-21 Java e Desenvolvimento Web. So Paulo: Caelum, 2011.

Prof. Manuel Gonalves da S. Neto

17

Você também pode gostar