Tratando exceções em Java

Documentos relacionados
Notas de Aula 09: Tratamento de exceções

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula

Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

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

TRATAMENTO DE EXCEÇÕES

O tratamento de erros em Java

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Tratamento de Exceções

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc.

Tratamento de Exceções. Julio Cesar Nardi

Java para Desktop. Exceções JSE

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Java. Tratamento de Exceções

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Java Standard Edition (JSE)

Aula 13 Tratamento de Exceções. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Programação de Computadores II TCC /Turma A 1

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Tratamento de Exceções. Profa. Thienne Johnson EACH/USP

Tratamento de Exceções

Programação Orientada a Objetos

Tratamento de Exceções

9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

22/9/16. Agenda. Erros. Erros. Exceções. Mecanismo de exceções

Programação de Computadores II

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Tratamento de Exceções cont. Profa. Thienne Johnson EACH/USP

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo

Tratamento de Exceções. Prof. Leonardo Barreto Campos 1

Programação Orientada a Objetos (DPADF 0063)

Tratamento de Exceções. Prof. Marcelo Roberto Zorzan

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 28 de setembro de 12

Tratamento de Exceções em Java

Template de classe. class vetor { int *arranjo; int limite; public: vetor(int=100); int & operator[ ](int n); };

[Desenvolvimento OO com Java] Exceções e controle de erros

Computação II Orientação a Objetos

Instituto de Informática Estrutura de Dados II

AULA TEÓRICA 3. Tema 4. Excepções Ø Tratamento de excepções

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares

Programação Orientada a Objetos II

Programação Orientada a Objetos

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

Exceções. Criando suas exceções

Computação II Orientação a Objetos

Aula 13 POO 1 Tratamento de Exceções no Java. Profa. Elaine Faria UFU

Desenvolvendo aplicações Java

Universidade de São Paulo (USP) Instituto de Ciências Matemáticas e de Computação (ICMC) Programação Orientada a Objetos (SCC0204)

Tratamento de Exceções

Classes e Objetos. Sintaxe de classe em Java

Mecanismo de exceções em Java

Cronograma de Aulas - Mococa 1º Módulo 23/05/2009 a 27/06/2009

Estrutura de Dados Funções e Procedimentos

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

terminar o programa; retornar um valor de erro indicando falha; retornar e ignorar o problema; chamar uma função para tratar o erro, etc...

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Linguagem de Programação II Implementação

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Controlando Erros com Exceções

Programação Estruturada

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

LINGUAGEM DE PROGRAMAÇÃO I

Migrando do para o. um e-book produzido por: CodePrestige

CETEC Centro Paula Souza

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Documentação. Java First-Tier: Aplicações. Documentação com javadoc. Comentários especiais. Marcas Especiais. Exemplo. Finalidade das marcas

Threads. O que é uma Thread? Paralelismo

String. Demonstrar a utilização e manipulação com os métodos da classe String.

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Exceções. Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12. quarta-feira, 21 de março de 12

Preparação do ambiente para desenvolvimento em Java

Familiarização com a ferramenta JavaCC

Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores)

Linguagem Java - Introdução

Declaração de Construtores em Java

Tratamento de Erro e Javadoc. Professor: Norton T. Roman

Linguagens de Programação Classificação

Conexão do Banco de Dados localhost

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

Teste Automatizado POO. Prof. Marcio Delamaro

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

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:

O problema da herança múltipla e o uso de Interfaces. Herança múltipla. Interfaces. Definindo Interfaces 30/11/2016

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

MANIPULAÇÃO DE STRINGS

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

Exceções. SCC0504 Programação Orientada a Objetos. Luiz Eduardo Virgilio da Silva ICMC, USP

Transcrição:

Página 1 de 9 En Tecnologias Revistas Cursos Pocket videos DevWare Fórum Serviços Publicar Comprar Bem vindo a DevMedia! LOGIN: SENHA: Esqueci minha senha Cadastre-se post favorito comentários Tratando exceções em Java Veja neste artigo como tratar exceções na linguagem Java, entendendo a teoria de funcionamento desse tipo de estrutura, passando pelos comandos de tratamento e captura até a customização de exceções para fins específicos. Conhece a assinatura MVP? Saiba mais +Java 7 2 Curtir 1 Gostei (1) (0) Publicidade Introdução Quando se cria programas de computador em Java, há possibilidade de ocorrer erros imprevistos durante sua execução, esses erros são conhecidos como exceções e podem ser provenientes de erros de lógica ou acesso a dispositivos ou arquivos externos. Entendendo as exceções As exceções ocorrem quando algo imprevisto acontece, elas podem ser provenientes de erros de lógica ou acesso a recursos que talvez não estejam disponíveis. Alguns possíveis motivos externos para ocorrer uma exceção são: Tentar abrir um arquivo que não existe. Tentar fazer consulta a um banco de dados que não está disponível. Serviços Inclua um comentário Adicionar aos Favoritos Marcar como lido/assistido Incluir anotação pessoal Versão para impressão Tentar escrever algo em um arquivo sobre o qual não se tem permissão de escrita. Tentar conectar em servidor inexistente. Figura 1: Ocorrência de exceção apontada no console Alguns possíveis erros de lógica para ocorrer uma exceção são: Tentar manipular um objeto que está com o valor nulo.

Página 2 de 9 Dividir um número por zero. Tentar manipular um tipo de dado como se fosse outro. Tentar utilizar um método ou classe não existentes. Figura 2: Exemplo de exceção por divisão por zero Tratando Exceções Uma maneira de tentar contornar esses imprevistos é realizar o tratamento dos locais no código que podem vir a lançar possíveis exceções, como por exemplo, campo de consulta a banco de dados, locais em que há divisões, consulta a arquivos de propriedades ou arquivos dentro do próprio computador. Para tratar as exceções em Java são utilizados os comandos e catch. Sintaxe: Listagem 1: Sintaxe de uso d -catch //trecho de código que pode vir a lançar uma exceção catch(tipo_exceçao_1 e) catch(tipo_exceçao_2 e) catch(tipo_exceçao_n e) Onde: - Neste bloco são introduzidas todas as linhas de código que podem vir a lançar uma exceção. catch(tipo_excessao e) - Neste bloco é descrita a ação que ocorrerá quando a exceção for capturada.

Página 3 de 9 Exemplificando uma exceção Imagine uma classe que tem um método principal main que tem como seu único objetivo alterar todas as letras de um frase para maiúsculas utilizando o método touppercase() da classe String, caso a frase esteja nula e se tente usar o método touppercase() na mesma será lançada uma exceção de NullPointerException. Primeiro vamos ver como ficaria a tal classe sem a utilização do /catch. Listagem 2: Exemplo de código sem -catch public class aumentafrase Quando este código for executado, o mesmo lançará uma NullPointerException, como poder ser visto na saída do console quando executamos tal programa. Listagem 3: Saída gerada pelo programa sem -cach Exception in thread "main" java.lang.nullpointerexception at aumentafrase.main(aumentafrase.java:15) Ou seja, o mesmo tentou acessar um atributo de um objeto que estava nulo. Para ajudar a melhorar a situação, deve-se usar o /catch. Listagem 4: Reformulação do código com -catck catch(nullpointerexception e) //CAPTURA DA POSSÍVEL exceção. //TRATAMENTO DA exceção System.out.println("O frase inicial está nula, para solucion frase = "Frase vazia"; Quando este código for executado, o mesmo lançará uma NullPointerException, porém esta exceção será tratada desta vez, sendo a mesma capturada pelo catch e dentro deste bloco as devidas providências são tomadas. Neste caso é atribuído um valor default à variável frase. A saída deste programa seria a seguinte: Listagem 5: Saída do programa reformulado array4

Página 4 de 9 Comando finally Imagine a seguinte situação: foi aberta uma conexão com o banco de dados para realizar determinada ação, e no meio deste processo seja lançada alguma exceção, como por exemplo, NullPointerException ao tentar manipular um determinado atributo de um objeto. Neste caso seria necessário que mesmo sendo lançada uma exceção no meio do processo a conexão fosse fechada. Um outro exemplo bom seria a abertura de determinado arquivo para escrita no mesmo, e no meio deste processo é lançada uma exceção por algum motivo, o arquivo não seria fechado, o que resultaria em deixar o arquivo aberto. Quando uma exceção é lançada e é necessário que determinada ação seja tomada mesmo após a sua captura, utilizamos a palavra reservada finally. Sintaxe: Listagem 6: Sintaxe de uso do bloco finally //trecho de código que pode vir a lançar uma exceção catch(tipo_exceçao_1 e) catch(tipo_exceçao_2 e) catch(tipo_exceçao _n e) finally Exemplo: Listagem 7: Programa aumetafrase com bloco finally public class aumentafrase catch(nullpointerexception e) System.out.println("O frase inicial está nula, para frase = "Frase vazia"; finally

Página 5 de 9 Quando este código fosse executado, o mesmo lançaria uma NullPointerException, porém esta exceção será tratada desta vez, sendo a mesma capturada pelo catch e dentro deste bloco as devidas providências são tomadas. Neste caso é atribuído um valor default à variável frase. Neste exemplo, mesmo o código lançando uma exceção durante a sua execução e a mesma sendo capturada pelo catch, uma determinada ação será tomada no bloco finally, neste caso tanto com a exceção ou não será executada a linha, tornando todas letras da frase maiúsculas. A saída deste programa seria a seguinte: Listagem 8: Saída do programa com bloco finally array4 Comandos throw e throws Imagine uma situação em que não é desejado que uma exceção seja tratada na própria classe ou método, mas sim em outro que venha lhe chamar. Para solucionar tal situação utilizamos o comando throws na assinatura do método com a possível exceção que o mesmo poderá a vir lançar. Sintaxe: Listagem 9: Sintaxe de declação de método com definição de exceções tipo_retorno nome_metodo() throws tipo_exceção_1, tipo_exceção_2, tipo_exceç Onde: tipo_retorno Tipo de retorno do método. nome_metodo() - Nome do método que será utilizado. tipo_exceção_1 a tipo_exceção_n Tipo de exceções separadas por virgula que o seu método pode vir a lançar. Exemplo: Listagem 10: Definição de exceções que um método pode gerar public class TesteString private static void aumentarletras() throws NullPointerException //l aumentarletras(); catch(nullpointerexception e) System.out.println("Ocorreu um NullPointerException

Página 6 de 9 Neste exemplo será lançada uma exceção no método aumetarletras(): Listagem 11: Definição da exceção gerada pelo método aumentarletras private static void aumentarletras() throws NullPointerException E o mesmo será tratado no método main(). Listagem 12 : Aplicação da exceção definida... aumentarletras(); catch(nullpointerexception e) System.out.println("Ocorreu um NullPointerException ao executar o mé Saída: Listagem 13: Saída do programa atualizado Ocorreu um NullPointerException ao executar o método aumentarletras() java.l Agora imagine o caso em que seja necessário lançar uma exceção padrão ao invés de uma especifica. Para resolver este problema, utilizamos o comando throw dentro do bloco catch que desejamos converter a exceção. Sintaxe: Listagem 14: Sintaxe de uso do comando throw // catch(tipoexcessão_1 e) throw new novotipoexceçao(e); Onde: tipoexcessão_1 e Tipo de exceção que pode ser capturada pelo bloco catch. NovoTipoExceçao Tipo de exceção que será lançada. Exemplo: Listagem 15: Exemplo de uso do comando throw public class TesteString private static void aumentarletras() throws Exception //lançando exc

Página 7 de 9 catch(nullpointerexception e) throw new Exception(e); aumentarletras(); catch(exception e) System.out.println("Ocorreu uma exceão ao executar o Neste exemplo será lançada uma NullPointerException e a mesma será convertida para Exception e relançada como Exception no método aumentarletras() e, por fim, a mesma é tratada no método main(). Saida: Listgem 16: Saída do programa atualizada Ocorreu uma exceão ao executar o método aumentarletras() java.lang.exception Criando exceções Assim como qualquer objeto, em Java também é possível criar suas próprias exceções. Imagine um cenário em que nenhuma exceção existente faça sentido para ser lançada por você. Por exemplo, imagine que por algum motivo você precisa que uma exceção seja lançada quando a letra B ou b não existe e determinada frase, como não existe nenhuma exceção específica para este caso será necessário criar uma exceção. Criando uma exceção para ser lançada toda vez que uma letra B ou B não é encontrada em uma determinada frase. Listagem 17: Exemplo de exceção customizada public class SemLetraBException extends Exception @Override public String getmessage() return "Não existe letra B em sua frase"; Toda exceção criada deve estender Exception, neste exemplo foi sobrescrito o método getmessage(), que é exibida no prompt toda vez que a exceção é lançada.

Página 8 de 9 Utilizando a exceção Abaixo segue um exemplo que é utilizada a exceção criada acima. Listagem 16: Utilizando a exceção customizada public class TesteExcecao throws SemLetraBException String frase = "Sou um teste!"; if(!frase.contains("b")!frase.contains("b")) throw new SemLetraBException(); Quando o programa acima fosse executado, uma exceção do tipo SemLetraBException () seria lançada. Abaixo está a saída exibida no prompt: Listagem 17: Saída do método com a mensagem da exceção customizada Exception in thread "main" SemLetraBException: Não existe letra B ou b em su Conclusão Como foi possível ver ao longo do artigo, o tratamento de exceções em Java é bem simples e sua manipulação pode ser feita de acordo com o que o programador deseja, desde tratá-la no próprio método ou lança-la para ser tratada em um método que venha chamar o método que lança a mesma. Robson Fernando Gomes Programador Java. Cursando o ultimo ano de Ciência da computação da Faculdade Salesiana do Estado São Paulo no campos de Lorena - SP. 7 2 Curtir 1 Gostei (1) (0) 0 COMENTÁRIO Nenhum comentário foi postado - seja o primeiro a comentar! Mais posts Trabalhando com SwingWorker em Java JADE: Framework de sistemas de agentes em Java

Página 9 de 9 Controlando versões com Google Code e Eclipse Revista Revista easy Java Magazine 34 O uso de Threads em Java e suas peculiaridades Fundamentos do Maven Programação distribuída com Sockets Primeiros passos com o Java 8 Interface gráfica em Java com WindowBuilder Aplicativo com fontes Código Fonte - Curso de ireport - Desenvolvendo Relatórios com Java Listar mais conteúdo DevMedia Curtir DevMedia Anuncie Fale conosco Hospedagem web por Porta 80 Web Hosting 14.122 pessoas curtiram DevMedia. 2013 - Todos os Direitos Reservados a web-03