1 / 10

Tratamento de Exceções

Tratamento de Exceções. Linguagem Java. Tratamento de Exceções. Exceções são erros que podem acontecer durante a execução de um programa. Estes erros podem e devem ser tratados (contornados) de modo a evitar que o programa termine de modo anormal !

gizi
Download Presentation

Tratamento de Exceções

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tratamento de Exceções Linguagem Java

  2. Tratamento de Exceções • Exceções são erros que podem acontecer durante a execução de um programa. Estes erros podem e devem ser tratados (contornados) de modo a evitar que o programa termine de modo anormal! • A estrutura try-catch-finally tem esta finalidade aliada a cláusula throws. • Uso da estrutura try-catch-finally: • Qualquer instrução, ou bloco de instruções, que possam gerar uma exceção (erro) devem ser reunidos num bloco try. • Um bloco try, por sua vez, pode um ou vários blocos catch, conforme o grau de particularização dado ao tratamento dos erros; • Cada programa só pode ter um bloco try por função. • Havendo um bloco try, deve haver pelo menos um bloco catch, embora vários sejam permitidos. • O bloco finally é opcional, mas se ocorrer deve ser único. Se houver um bloco finally ele será executado independentemente de ter ocorrido erro ou não. • Se uma exceção é detectada num bloco try, o programa será imediatamente desviado para o bloco catch correspondente à exceção gerada.

  3. Uso da estrutura try-catch-finally • - As exceções são nomeadas segundo o seu tipo, por exemplo: • NumberFormatException (erros de formato de dados) • ArithmeticException (divisão por zeros entre inteiros) • IOException (erros de E/S de dados) • ArrayIndexOutOfBounds (indexação fora dos limites do vetor) • InterruptedException ( erro de interrupção) • Exception (exceção genérica, isto é, não particularizada)

  4. Uso da estrutura try-catch-finally

  5. Estrutura try-catch-finally Estrutura try-catch: try{ <bloco de instruções> } catch (<nome da exceção 1>){ <tratamento da exceção 1> } catch (<nome da exceção 2>) { <tratamento da exceção 2> } ... catch (<nome da exceção n>) { <tratamento da exceção n> } finally{ <instruções finais> }

  6. Exemplo: import javax.swing.*; public class Ex_try_catch_finally{ public static void main(String args[]){ int n1, n2; String aux=JOptionPane.showInputDialog(null, "Informe um valor inteiro"); try{ n1=Integer.parseInt(aux); //transforma em inteiro o valor digitado em aux aux=JOptionPane.showInputDialog(null, "Informe outro valor inteiro"); n2=Integer.parseInt(aux); //idem JOptionPane.showMessageDialog(null, "Produto = " + (n1*n2)); JOptionPane.showMessageDialog(null, "Divisão = " + (n1/n2)); } catch (NumberFormatException e) { //trata erros de formato de numeros JOptionPane.showMessageDialog(null, "Erro na entrada de dados"); } catch (ArithmeticException e) { //Divisão por zero JOptionPane.showMessageDialog(null, "Divisão por zero"); } finally { JOptionPane.showMessageDialog(null, "****Final de execução****"); } } }

  7. Uso da cláusula throws Certas operações (instruções) requerem tratamento de exceção, caso contrário o programa nem compila. O correto seria inserir no programa um bloco try-catch com esta finalidade, mas caso o programador não deseje realizar este tratamento, deve explicitar isto através da cláusula throws. Exemplo: import java.io.*; class IgnoraErro{ public static void main(String args[]) throws IOException { //descarta o erro BufferedReader dado; //tipo de dado que será buferizado durante a leitura System.out.println("entre com seu nome"); dado=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Seu nome eh " + dado.readLine()); } }

  8. Uso do getMessage e printStackTrace • Quando precisamos saber qual foi o erro e em que linha ocorreu podemos recorrer a este 2 métodos. • O método getMessage retorna uma string informando a exceção ocorrida • O método printStackTrace retorna o tipo de exceção e em que linha do programa ocorreu

  9. Exemplo 1.classTipodeErro { 2. publicstaticvoidmain(String args[]){ 3. int x=10, y=0, z=0; 4. try{ 5. z=x/y; // gera uma arithmetic exception (divisão por zero) 6. } 7. catch(Exception erro) { //exceção genérica!!! 8. System.out.println(erro.getMessage()); //mostra a mensagem de erro 9. erro.printStackTrace(); //mostra a exceção e a linha onde ocorreu 10. } 11. } 12. }

  10. Resultado da execução do programa Linha do programa onde ocorreu o erro Tipo de erro Mensagem de erro (getMessage)

More Related