Mecanismo de exceções em Java
|
|
|
- Martín Coimbra Canedo
- 9 Há anos
- Visualizações:
Transcrição
1 Mecanismo de exceções em Java (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira
2 Conceito de exceção Erro de execução provocado por condição excecional: Indexação fora dos limites num array Utilização de uma referência a null Conversão de tipo de um objeto não permitida Escrever informação num ficheiro só com permissões de leitura A condição excecional pode ter origem: Erros de programação para corrigir Entrada incorreta de dados Utilizador, ficheiros, comunicações Problemas de comunicação Rede, impressora, USB Limitações físicas Disco cheio, falha de alimentação, avaria de hardware Impossível prever todas as situações 2
3 Captura de exceções try catch finally Bloco try Código que pode lançar exceções Algoritmo pretendido Cláusulas catch Código de tratamento da exceção Várias desde a exceção mais específica até à mais abrangente Bloco finally Código a executado haja ou não qualquer exceção Opcional Liberta recursos pedidos no try Scanner in = null; Pode lançar try { InputMismatch in = new Scanner(System.in); int value = in.nextint(); System.out.println(100/value); Pode lançar Arithmetic catch(inputmismatchexception ex) { System.out.println( "Erro ao ler valor"); catch(arithmeticexception ex) { System.out.println( "Erro de cálculo: " + ex.getmessage()); finally { if (in!=null) in.close(); 3
4 Captura e recuperação Scanner in = new Scanner(System.in); boolean success = false; do { try { System.out.print("Valor? "); int value = in.nextint(); System.out.println(100 / value); success = true; catch (InputMismatchException ex) { System.out.println("Erro ao ler valor"); in.nextline(); // Discards line catch (ArithmeticException ex) { System.out.println("Erro de cálculo: " + ex.getmessage()); while(!success); in.close(); System.out.println("OK"); Valor? abc Erro ao ler valor Valor? 0 Erro de cálculo: / by zero Valor? 20 5 OK 4
5 Lançar e capturar exceções Instrução throw exp Em que exp refere um objeto de uma classe derivada de Throwable A execução termina abruptamente não executando o restante código do(s) método(s) É procurado o catch adequado à exceção pela ordem inversa dos métodos chamados A execução continua a partir desse catch setradius(-10) m1(c) call call call m2(c,-10) main( ) Procura catch adequado main() { Circle c=new Circle(); m1(c); public class Circle { private int radius; m1(circle c) { try { m2(c,-10); catch(exception e){ m2(circle c, int r) { c.setradius(r); public void setradius(int r) { if (r<0) throw new IllegalArgumentException("r < 0"); radius = r; invalidate(); 5
6 Lançar e capturar a exceção 1. Quando ocorre a condição excecional é criado um objeto que descreve essa condição new Exception() 2. O objeto da exceção é lançado terminando abruptamente o bloco de código em execução throw 3. O mecanismo de exceções determina qual é o ponto de captura (try/catch) mais próximo para a exceção no contexto da execução, andando para trás na ordem de invocação dos métodos. 4. É executado o código de captura adequado à exceção try { catch( Exception ex) { 5. É executado o código do bloco finally, caso exista catch(exception ex) { finally { 6. A execução continua normalmente após o ponto de captura 6
7 Hierarquia de exceções Error Lançadas pela JVM em situações graves Não verificadas pelo compilador (unchecked) Não devem ser definidas classes derivadas de Error Ex: StackOverflow Exception checked Verificadas pelo compilador Têm que ser capturadas e tratadas no programa Origem em fatores externos ao programa Ex: FileNotFound RunTimeException unchecked Não verificadas pelo compilador Originadas por erros de programação Não deve ocorrer na versão final Ex: divisão por zero em inteiros 7
8 Características das exceções A classe Throwable implementa as características herdadas pelas exceções Mensagem Descrição detalhada da exceção Causa Quando a exceção é provocada por outra Pode ser null Stack de chamadas Os métodos chamados desde main() até ao método que lançou a exceção, por ordem inversa java.lang.nullpointerexception at MyClass.mash(MyClass.java:9) at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3) 8
9 Exceções checked Código que pode lançar determinada exceção E checked, deve: Estar envolvido num bloco try com catch que capture essa exceção ou então Pertencer a um método que indique que pode lançar essa exceção para quem o chamar void m() { try { throw new E(); catch(e ex){ ou então void m() throws E { throw new E(); 9
10 Definição de novas exceções Novas exceções devem derivar de Exception ou RuntimeException conforme se pretenda que sejam checked ou unchecked. public class StackException extends RuntimeException { protected StackException(String msg) {super(msg); protected StackException() {super(); public class StackFull extends StackException { private int capacity; public StackFull(int cap) { super(" capacity="+cap); capacity = cap; public int getcapacity() { return capacity; public class StackEmpty extends StackException { 10
11 Relançar exceções public class Stack<T> { private T[] array; private int length = 0; Conversão para T[] não pode ser verificada pelo public Stack(int cap) { array = (T[]) new Object[cap]; public boolean isfull() { return length==array.length public void push(t elem) { try { array[length] = elem; ++length; catch (ArrayIndexOutOfBoundsException e) { throw new StackFull(array.length); Lança StackFull em vez de ArrayIndexOutOfBoundsException 11
12 Alterações no Java 7 Cláusulas cacth com várias exceções Reduz a duplicação de código na captura de exceções diferentes Scanner in; try { in = new Scanner(System.in); int value = in.nextint(); System.out.println(100/value); catch(inputmismatchexception ArithmeticException ex) { System.out.println("Erro: " + ex.getmessage()); finally { in.close(); Blocos try com recursos No finally faz close() dos recursos indicados no try Os recursos têm que implementar a interface AutoCloseable try (Scanner in = new Scanner(System.in)) { int value = in.nextint(); System.out.println(100/value); catch(inputmismatchexception ArithmeticException ex) { System.out.println("Erro: " + ex.getmessage()); 12
O tratamento de erros em Java
Exceções JAVA O tratamento de erros em Java É um dos mecanimos mais poderosos para tratar os chamados runtime errors, de modo a que o fluxo normal do programa possa ser mantido. https://techterms.com/definition/runtime_error
Tratamento de Exceções cont. Profa. Thienne Johnson EACH/USP
Tratamento de Exceções cont. Profa. Thienne Johnson EACH/USP Java, como programar Deitel & Deitel Capítulo 14 continuação Todas as classes de exceção de Java herdam, direta ou indiretamente, da classe
Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)
DCC / ICEx / UFMG Tratamento de Exceção Tratamento de Exceções Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Uma exceção é uma indicação de problema na execução do programa Exceção foge ao fluxo
Tratamento de Exceções
Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que
Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações
Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções Java Avançado Tratamento de Exceções Roberto Vedoato [email protected] Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally
Notas de Aula 09: Tratamento de exceções
Notas de Aula 09: Tratamento de exceções Objetivos da aula: Compreender o conceito de exceção Aprender a tratar exceções nos programas Entender a hierarquia das exceções Criar e lançar uma exceção proprietária
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:
Tratamento de Exceções Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Exceções Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade
Paradigmas da Programação PPROG. Linguagem JAVA. Exceções. (Livro Big Java, Late Objects Capítulo 7) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/45
PPROG Paradigmas da Programação Linguagem JAVA Exceções (Livro Big Java, Late Objects Capítulo 7) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/45 Exceções Conceitos Básicos Sumário Geral Captura e Tratamento
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho [email protected] Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa [email protected] Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo
AULA TEÓRICA 3. Tema 4. Excepções Ø Tratamento de excepções
AULA TEÓRICA 3 Tema 4. Excepções Ø Tratamento de excepções 1 Excepções Uma excepção é um evento que ocorre durante a execução de um programa que interfere no fluxo normal das instruções deste programa.
Programação Orientada a Objetos
Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade [email protected] Tratamento de Exceções Quem pensa pouco, erra muito Leonardo da Vinci Exceções!!! 12/09/2011 Prof. Kléber de Oliveira
9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza
Desenvolvimento OO com Java 9 Exceções Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
Tratamento de Exceções. Prof. Leonardo Barreto Campos 1
Tratamento de Exceções Prof. Leonardo Barreto Campos 1 Sumário Introdução; Tratamento de Exceções Java; Hierarquia de Exceções Java; Bloco finally - Java Bibliografia; Prof. Leonardo Barreto Campos 2/24
Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira
Tratamento de Erros Sérgio Luiz Ruivace Cerqueira [email protected] Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:
Exceções. SCC0504 Programação Orientada a Objetos. Luiz Eduardo Virgilio da Silva ICMC, USP
SCC0504 Programação Orientada a Objetos Exceções Luiz Eduardo Virgilio da Silva ICMC, USP Parte do material foi obtido com os professores: José Fernando Junior (ICMC/USP) Sumário Introdução Tipos de exceção
Tratamento de Exceções em Java
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Tratamento de Exceções em Java Professor: César Melo Slides baseados em materiais preparados pela Profa.
Programação Orientada a Objetos. Manipulação de Exceções
Programação Orientada a Objetos Manipulação de Exceções Cristiano Lehrer, M.Sc. Introdução à Manipulação de Exceções (1/2) Em uma linguagem sem manipulação de exceção: Quando ocorre uma exceção, o controle
Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares
Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e
Tratamento de Erro e Javadoc. Professor: Norton T. Roman
Tratamento de Erro e Javadoc Professor: Norton T. Roman Tratamento de Erro import java.lang.string; import java.io.bufferedreader; import java.io.inputstreamreader; import java.lang.integer; O que vai
Exceções. Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12. quarta-feira, 21 de março de 12
Exceções Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12 Tratamento de Exceções O tratamento de exceções em Java permite o gerenciamento de erros em tempo de execução. Uma exceção
JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 28 de setembro de 12
JAVA Tópicos Especiais de Programação Orientada a Objetos 1 TRY CATCH 2 O que fazer quando algo inesperado acontece? 3 O que fazer quando algo inesperado acontece? Com JAVA podemos nos prevenir!!! 3 O
Tratamento de Exceções. Profa. Thienne Johnson EACH/USP
Tratamento de Exceções Profa. Thienne Johnson EACH/USP Java, como programar Deitel & Deitel Capítulo 14 Uma exceção é uma indicação de um problema que ocorre durante a execução de um programa O tratamento
Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Programação Orientada a Objetos SANTOS, Rafael (PLT)
Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc
Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
[Desenvolvimento OO com Java] Exceções e controle de erros
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Exceções e controle de erros Este obra está licenciada com uma
Linguagem Java - Introdução
Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean
Programação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
Java Standard Edition (JSE)
Java Standard Edition (JSE) 10. Controle de Exceções Esp. Márcio Palheta Gtalk: [email protected] 1 Ementa 10. Controle de Exceções; 11. O pacote java.lang; 12. O pacote java.io; 13. Collection
Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Tratando exceções em Java
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
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
MsC. João Maria MsC. Liviane Melo
Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance
terminar o programa; retornar um valor de erro indicando falha; retornar e ignorar o problema; chamar uma função para tratar o erro, etc...
Exceções Componentes robustos Problemas comuns Sistemas de tratamento de exceções Tratando exceções Classes de exceções Disparando exceções Criando novas classes de exceções Componentes robustos Componentes
Tratamento de Exceções
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;
[email protected]
Tratamento de Exceções Rui Rossi dos Santos [email protected] Mediador: Rui Rossi dos Santos Slide 1 o Exceção: condição anormal Introdução o Causas: Falhas na implementação Falhas na operação o
Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20
PPROG Paradigmas da Programação Tipos Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 Sumário Interesse Definição Implementação Declaração Valor de um Tipo Enumerado Variável de Tipo Enumerado Métodos Automáticos
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
Curso Adonai QUESTÕES Disciplina Linguagem JAVA
1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String
Programação Orientada a Objetos JAVA - NETBEANS
Programação Orientada a Objetos JAVA - NETBEANS Agenda Interface Enum Collections Inteface Vamos começar relembrando de herança, polimorfismo e a palavra chave abstract: Inteface Vamos começar olhando
Capítulo 10. Tratamento de Exceções. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 10 Tratamento de Exceções Objetivos do Capítulo Apresentar o conceito de exceção e caracterizar as situações sob as quais as exceções se manifestam. Indicar os mecanismos que podem ser empregados
O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução.
Java Tratamento de Exceção O que é uma Exceção? n Uma exceção é um evento que ocorre durante a execução do programa que interrompe o fluxo normal de instruções. n Quando um erro acontece em um método,
Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Programação de Computadores para GI
Programação de Computadores para GI Aula 05 Java - Identificadores Nomes que o programa manipula: variáveis, constantes, subprogramas e classes Não devem começar com números nem com _ Não existe tamanho
