Java Standard Edition (JSE)
|
|
|
- Wagner Fialho Castro
- 8 Há anos
- Visualizações:
Transcrição
1 Java Standard Edition (JSE) 10. Controle de Exceções Esp. Márcio Palheta Gtalk: 1
2 Ementa 10. Controle de Exceções; 11. O pacote java.lang; 12. O pacote java.io; 13. Collection Framework e Generics; 14. Threads; 15. Sockets; 16. Tipos especiais: Enum; 17. Ferramentas jar e javadoc; 2
3 Agenda Introdução ao controle de exceções; Tipos de controle; Pilha de execução; Tratamento de exceções; Tipos de exceção: Checked e Unchecked Lançamento de exceções; Construtores de exceções; Exceções especializadas; 3
4 Cenário 01 Método sacar() Imaginemos a classe ContaBancaria e seu método sacar(); O que acontece quando tentamos sacar um valor maior que o nosso limite? 4
5 Operação de saque O sistema mostra uma mensagem de erro(no console) mas o que acontece com quem chamou o método sacar()? Como avisar que a operação NÃO foi realizada com sucesso? Se o saque não for realizado, o usuário deve ser avisado do problema; 5
6 Chamada válida ou inválida? O que acontece no trecho de código a seguir? Algum problema? Sem conhecer o método sacar(), você afirmaria que ele foi executado com sucesso? 6
7 Como melhorar a comunicação entre as classes? Em sistemas reais, é muito comum que quem saiba tratar o erro é aquele que chamou o método sacar(); A solução tradicional é retornar um valor booleano, a fim de informar que houve um erro no processamento; Com isso, a responsabilidade de tratar o erro que ocorreu passa para quem chama o método sacar(); 7
8 Melhorando a chamada Que tal a nova chamada? Ops! Temos que lembrar de tratar o retorno do método. Isso é bom? E se o caixa eletrônico esquecesse de testar o tipo de retorno? 8
9 E os outros erros? Mesmo que estejamos tratando o tipo de retorno do método sacar, o que aconteceria se tentássemos sacar um valor negativo? A solução instantânea é mudar o tipo de retorno de boolean para int; Mas...qual seria a consequência de usar os magic numbers? 9
10 Como tratar os erros? Precisamos de uma forma de tratar situações especiais que possam gerar erros; Daí, surge o conceito de EXCEÇÃO; Exceção representa uma situação que normalmente não, sendo algo de estranho ou inesperado no sistema. 10
11 Cenário 02 execução de vários métodos 11
12 Entendendo as chamadas O método main chama metodo1 que chama o metodo2; O que ocorre com as variáveis de cada método? Como a execução de cada método é controlada de forma separada? Como fica a memória? 12
13 Pilha de execução (stack) Toda invocação de um método é empilhada em uma estrutura de memória; Cada método tem sua própria área; Quando um método termina, sai da pilha e a execução retorna para o método que o chamou; 13
14 Pilha de execução Graficamente, podemos representar a pilha de execução do nosso trecho de código com a figura a seguir: 14
15 Mas...nem tudo é perfeito O metodo2 possui um problema: está tentando acessar um índice de array indevido; o índice estará fora dos limites do array quando chegar em 5; Rode o código. Qual é a saída? O que isso representa? O que ela indica? 15
16 Rastro de pilha - stacktrace 16
17 Exceções em JAVA Quando uma exceção é lançada (throws), a JVM verifica se o método tomou algum cuidado ao tentar executar esse trecho de código; Como metodo2 não trata o erro, a JVM aborta a execução do metodo2 e volta um nível(stackframe), retornando à execução do metodo1; 17
18 Seguindo na pilha Como metodo1 não trata nenhum problema chamado ArrayIndexOutOfBoundsException, a execução de metodo1 também é encerrada abruptamente; A JVM segue na pilha de execução e chega ao método main, onde percebe que também não há tratativa para a exceção lançada; A aplicação é encerrada de forma inesperada; 18
19 Tratamento das exceções O erro de acesso indevido ao índice de um array seria resolvido com length; Porém, a fim de entendermos o controle do fluxo de uma Exceção, vamos tentar(try) executar o bloco de comandos e pegar (catch) a exceção ArrayIndexOutOfBoundsException. 19
20 Atualização de metodo2() 20
21 Resultado da execução 21
22 Itens a considerar O que mudou? A partir do momento em que a exceção foi tratada(catched), a execução do programa volta ao normal; A execução reinicia na linha localizada após o bloco try-catch 22
23 Outra exceção de Runtime 23
24 Exceções não-checadas Como poderíamos evitar exceções como ArrayIndexOutOfBoundsException ou NullPointerException? Em ambos os casos, o erro poderia ser evitado pelo programador; É por isso que você não é obrigado a usar o bloco try-catch; Essas exceções são chamadas de Unchecked 24
25 Unchecked Exceptions O compilador não precisa checar se uma determinada exceção está sendo tratada pelo programador; Não há problemas em tempo de compilação; A exceção só é lançada em tempo de execução; 25
26 Outro tipo de exceção Em java, temos outro tipo de exceção que obriga que o programador trate as exceções; A esse tipo chamamos de Checked, porque o compilador checa se você está tratando a possível exceção; Caso a exceção não seja tratada, ocorrerá um erro em tempo de compilação; 26
27 Leitura de arquivos O que acontece no código abaixo? Por que não compila? Como resolver o problema? 27
28 Tratando uma exception Clique no sinal de erro e escolha a opção Surround with try/catch 28
29 Resultado gerado 29
30 Outra forma de tratamento - Lançando a exceção 30
31 Resultado gerado 31
32 A família Throwable 32
33 Como tratar mais de uma exceção? 33
34 Combinando as técnicas 34
35 Melhorando o método sacar() O que poderíamos fazer, ao invés de devolver um valor boolean? Exatamente! Lançar uma exceção; Dessa forma, resolvemos o problema de esquecimento de um if; Para lançarmos uma exceção, precisamos da palavra reservada throw 35
36 Alterações do método sacar() Agora, estamos lançando a exceção chamada RuntimeException 36
37 Conhecendo RuntimException É a mãe de todas as exceções unchecked; A desvantagem é que ela é muito genérica; Quem receber esse erro, tem dificuldade para saber o que houve; O que fazer? 37
38 Uma exception mais específica 38
39 IllegalArgumentException É uma exceção que fala um pouco mais do erro ocorrido; É uma exceção nativa do java; É do tipo unchecked pois estende de RuntimeException; 39
40 Como chamar o método sacar()? Agora, podemos tratar a exceção lançada pelo método sacar(): 40
41 Construtores em Exceptions E se nós invocássemos uma sobrecarga do construtor padrão da nossa exceção? 41
42 Acesso às mensagens O método getmessage() da classe Throwable, mãe de todas as exceptions, retorna a mensagem informada: 42
43 O que deve ser protegido no try-catch? 43
44 Melhorando o fluxo O que mudou? Faz sentido? 44
45 Exceções personalizadas Java possui uma boa API de exceções; É comum que o programador queira controlar melhor as exceções; Em Java, podemos criar e controlar nossas próprias exceções; Uma exception é uma classe java comum, que é uma extensão de algum tipo de exceção; 45
46 Criação e uso de exceptions Como mudar de Unchecked para Checked? 46
47 Uma nova clausula Em um bloco de try-catch, são executados os comandos do bloco try; Em caso de exceptions, são executados os comando do bloco catch; Mas o Java nos permite criar um terceiro bloco, que SEMPRE será executado: finally 47
48 Estrutura do bloco Na figura abaixo, é apresentada a estrutura padrão para controle de exceções: 48
49 Exercícios Criar as exceções: ValorInvalidoException e SaldoInsuficienteException; Atualizar o método sacar() para lançar as exceções criadas; Criar a classe TestaExcecao para usar o método sacar() e tratar suas exceções; O valor a ser sacado deve ser informado pelo usuário; 49
50 Bibliografia Java - Como programar, de Harvey M. Deitel Use a cabeça! - Java, de Bert Bates e Kathy Sierra (Avançado) Effective Java Programming Language Guide, de Josh Bloch 50
51 Referências WEB SUN: Fóruns e listas: Javaranch: GUJ: Apostilas: Argonavis: Caelum: 51
52 Java Standard Edition (JSE) 10. Controle de Exceções Esp. Márcio Palheta Gtalk: 52
Java Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 07. Classes abstratas Esp. Márcio Palheta MSN: [email protected] 1 Novos recursos a aprender Conceito de classes abstratas; Declaração e uso de classes abstratas;
Java Standard Edition (JSE)
Java Standard Edition (JSE) 11. O Pacote java.lang Esp. Márcio Palheta Gtalk: [email protected] 1 Agenda O pacote java.lang; As classes System, Runtime, Object; Trabalhando com Casting; Sobrecarga
Java Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 04. Orientação a Objetos: Classes, Objetos e métodos Esp. Márcio Palheta MSN: [email protected] 1 Agenda Revisão da aula anterior; Motivação Trabalho em equipe
Java Standard Edition (JSE)
Java Standard Edition (JSE) 13. Collections framework Esp. Márcio Palheta Gtalk: [email protected] 1 Agenda Revisão de dificuldades com Arrays; Trabalhando com Listas - List; Uso de Generics; Interfaces
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
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
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çã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
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
[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
Exceções e controle de erros
Página 1 de 38 APOSTILA JAVA E ORIENTAÇÃO A OBJETOS CAPÍTULO 11 Exceções e controle de erros "Quem pensa pouco, erra muito" Leonardo da Vinci Ao término desse capítulo, você será capaz de: controlar erros
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çõ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 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
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
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
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;
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
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
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
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
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:
Mecanismo de exceções em Java
Mecanismo de exceções em Java (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Conceito de exceção Erro de execução provocado por condição
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
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
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
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
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
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
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
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
Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Erros, exceçõ. ções e asserçõ
Java 2 Standard Edition Erros, exceçõ ções e asserçõ ções Helder da Rocha www.argonavis.com.br 1 Controle de erros com Exceções Exceções são Erros de tempo de execução Objetos criados a partir de classes
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA...1
SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA...1 A Origem...2 O Caminho Para a Aprendizagem...4 Java Como Plataforma...6 Finalidade...8 Características...11 Perspectivas...13 Exercícios...14 CAPÍTULO 2 AMBIENTE
Tipos de dados e comandos POO
Tipos de dados e comandos POO Prof. Marcio Delamaro 1/46 Objetivo Vamos ver quais são os tipo de dados primitivos da linguagem Vamos ver quais são os principais comandos 2/46 Tipos Tipo Tamanho int 4 bytes
JAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
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
POO fundamentos Parte II. Professor Vicente Paulo de Camargo
POO fundamentos Parte II Professor Vicente Paulo de Camargo COMPORTAMENTOS Um comportamento expressa uma ação que um objeto ou instância de uma classe pode executar Na POO um comportamento é expresso através
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.
Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
