Programação por Objectos. Java

Tamanho: px
Começar a partir da página:

Download "Programação por Objectos. Java"

Transcrição

1 Programação por Objectos Java Parte 10: Pacotes, excepções e asserções LEEC@IST Java 1/58

2 Pacotes revisão (1) Um pacote é um mecanismo de agrupamento de informação: Os pacotes podem conter outros pacotes, classes, interfaces e objectos. O pacote forma um espaço de nomes (namespace), logo os seus membros têm de ter identificadores únicos (por exemplo, num pacote não pode haver duas classes com o mesmo nome). O identificador dum pacote pode consistir num nome simples ou num nome qualificado. O nome qualificado corresponde ao nome simples prefixado pelo nome do pacote onde este reside, se existir. É usual usar-se. ou :: para separar os nomes simples. LEEC@IST Java 2/58

3 Pacotes revisão (2) A importação adiciona o conteúdo do pacote importado ao espaço de nomes do pacote importador, de tal forma que passa a ser desnecessário usar o seu nome qualificado. A importação não é transitiva. Se o pacote B importar o pacote A, e o pacote C importar o pacote B, no pacote C não são importados os elementos do pacote A. Caso o pacote C queira importar igualmente os elementos do pacote A, devem ser inseridas duas directivas de importação, uma para o pacote A e outra para o pacote B. O conjunto de métodos de um pacote é referido por API (Application Programmer Interface). LEEC@IST Java 3/58

4 Pacotes (1) Os pacotes são úteis por várias razões: Agrupam interfaces e classes relacionadas num mesmo pacote (que depois pode ser disponibilizado num ficheiro jar, juntamente com o MANIFEST.MF descrevendo o pacote). Criam um espaço de nomes que evita conflito de nomes entre tipos definidos fora do pacote (possível uso de nomes populares, por exemplo, List). Oferecem um domínio protegido para o desenvolvimento de aplicações (o código dentro do pacote pode cooperar, usando o acesso que lhe é oferecido aos membros das classes e interfaces do pacote, acesso esse que normalmente é mais restrito para código externo). LEEC@IST Java 4/58

5 Disponibilizar de uma aplicação num JAR file Criar um pacote, Exemplo: listadestrings Os ficheiros do pacote estarão da directoria listadestrings Compilar os ficheiros: javac listadestrings\*.java (ou eclipe em bin) Escolher a classe de entrada, Exemplo: Teste Gerar o ficheiro lista.jar: Jar cvfe lista.jar listadestrings.teste listadestrings\*.class Opções: c create file; v verbose; f - file name; e entry point Correr o ficheiro: Duplo click no windows Java jar lista.jar, na command line LEEC@IST Java 5/58

6 Disponibilizar de uma aplicação num JAR file Criar um ficheiro META-INF\MANIFEST.MF Exemplo: Manifest-Version: 1.0 Created-By: 1.6.0_04 (Sun Microsystems Inc.) Main-Class: listadestrings.teste Executa a aplicação jar indicando o ficheiro manifest jar -cvfm ola.jar META-INF\MANIFEST.MF listadestrings\ Para disponilizar um jar empacotado num.exe: LEEC@IST Java 6/58

7 Pacotes (2) Uma classe é inserida num pacote pela directiva package IdPacote; Uma declaração package tem de ser a primeira coisa a aparecer num ficheiro fonte, antes da declaração de qualquer classe ou interface (e mesmo antes de qualquer directiva de import). Só pode existir uma declaração package por código fonte. O nome do pacote é implicitamente prefixado ao nome de cada tipo contido no pacote. LEEC@IST Java 7/58

8 Convenções nos nomes dos pacotes Começam com o domínio de topo seguindo do nome da organização e subdominios e final o nome especifico do pacote Nomes em letras minúsculas Ordem inversas dos nomes de domínio da Internet Exemplo: ca.mysoft.fractions Notar que. corresponde a separação de directorias no sistema de ficheiros. LEEC@IST Java 8/58

9 Pacotes Se um tipo não é declarado como pertencendo a um pacote, é colocado num pacote sem nome (facilita a implementação de pequenos programas). As ficheiros do pacote estão normalmente numa directoria com o mesmo nome. Ou seja pacote=directoria do sistema de ficheiros LEEC@IST Java 9/58

10 Pacotes A importação das classes é feita pela directiva: import IdPacote[.IdSubPacote]*.(* IdTipo); Importação a pedido (on demand): import java.util.*; O * importa as definições de todos os tipos públicos do pacote. Importação simples: import java.util.set; LEEC@IST Java 10/58

11 Pacotes A directiva de import deve ser usada depois da declaração package, mas antes da declaração de qualquer tipo. O Java importa automaticamente o pacote java.lang (subpacotelang do pacote java). O separador. no Java corresponde ao / do Unix e \ do Windows. LEEC@IST Java 11/58

12 Pacotes Código escrito fora dum pacote, e que precisa de tipos definidos nesse pacote, tem duas opções: Utilizar o nome qualificado do tipo. Importar parte ou todo o pacote. package xpto; public class Xpto { java.util.set<string> strings; //... package xpto; import java.util.set; public class Xpto { Set<String> strings; //... LEEC@IST Java 12/58

13 Pacotes Directivas de import. O compilador procura pelo tipo na ordem: O tipo corrente, incluindo tipos herdados. Tipos aninhados no tipo corrente. Tipos importados explicitamente através de importações simples. Outros tipos declarados no mesmo pacote. Tipos importados implicitamente através de importações a pedido. (estas importações apenas serão efectuadas caso o nome das classes seja referenciado e não existam no pacote!) Se depois de todos estes passos o tipo ainda não é encontrado, dá um erro de compilação. LEEC@IST Java 13/58

14 Pacotes Quando dois pacotes contém um tipo com o mesmo nome o programador pode: Referir-se a ambos através do nome qualificado, i.e., pacote1.idtipo e pacote2.idtipo. Importar apenas pacote1.idtipo, ou pacote1.* usar IdTipo para se referir a pacote1.idtipo usar pacote2.idtipo. Importar tudo de ambos os pacotes pacote1.* e pacote2.*, e usar o nome qualificado pacote1.idtipo pacote2.idtipo LEEC@IST Java 14/58

15 Pacotes Existem apenas duas opções de visibilidade para classes e interfaces (não aninhadas) num pacote: pacote e public. Uma classe ou interface pública é acessível em código fora do pacote. Por omissão do qualificador de visibilidade, uma classe ou interface é acessível apenas no código dentro do mesmo pacote. Os tipos são escondidos para fora do pacote. Os tipos são escondidos para subpacotes. LEEC@IST Java 15/58

16 Pacotes Por omissão do qualificador de visibilidade, um membro de uma classe é visível dentro do correspondente pacote, e apenas dentro deste. LEEC@IST Java 16/58

17 Pacotes package p1; public abstract class SuperClasseAbstracta { private void pri() {print( SuperClasseAbstracta.pri() ); void pac() {print( SuperClasseAbstracta.pac() ); protected void pro() {print( SuperClasseAbstracta.pro() ); public void pub() {print( SuperClasseAbstracta.pub() ); public final void imprimir() { pri(); pac(); pro(); pub(); LEEC@IST Java 17/58

18 Pacotes package p2; import p1.superclasseabstracta; public class SubClasseConcreta1 extends SuperClasseAbstracta { public void pri() {print( SubClasseConcreta1.pri() ); public void pac() {print( SubClasseConcreta1.pac() ); public void pro() {print( SubClasseConcreta1.pro() ); public void pub() {print( SubClasseConcreta1.pub() ); Apenas as os métodos visíveis são redefinidos new SubClasseConcreta1().imprimir(); Resulta em: SuperClasseAbstracta.pri() SuperClasseAbstracta.pac() SubClasseConcreta1.pro() SubClasseConcreta1.pub() LEEC@IST Java 18/58

19 Pacotes package p1; import p2.subclasseconcreta1; public class SubClasseConcreta2 extends SubClasseConcreta1 { public void pri() {print( SubClasseConcreta2.pri() ); public void pac() {print( SubClasseConcreta2.pac() ); public void pro() {print( SubClasseConcreta2.pro() ); public void pub() {print( SubClasseConcreta2.pub() ); A chamada de imprime no terminal new SubClasseConcreta2().imprimir(); SuperClasseAbstracta.pri() SubClasseConcreta2.pac() SubClasseConcreta2.pro() SubClasseConcreta2.pub() LEEC@IST Java 19/58

20 Pacotes package p3; import p1.subclasseconcreta2; public class SubClasseConcreta3 extends SubClasseConcreta2 { public void pri() {print( SubClasseConcreta3.pri() ); public void pac() {print( SubClasseConcreta3.pac() ); public void pro() {print( SubClasseConcreta3.pro() ); public void pub() {print( SubClasseConcreta3.pub() ); A chamada de imprime no terminal new SubClasseConcreta3().imprimir(); SuperClasseAbstracta.pri() SubClasseConcreta3.pac() SubClasseConcreta3.pro() SubClasseConcreta3.pub() LEEC@IST Java 20/58

21 Excepções revisão Frequentemente as aplicações informáticas são sujeitas a situações anómalas: Erros matemáticos (por exemplo, divisões por 0). Dados indicados em formato inválido (por exemplo, inteiro inserido com caracteres inválidos). Tentativa de acesso a uma referência nula. Abertura para leitura de ficheiro inexistente. LEEC@IST Java 21/58

22 Excepções revisão Uma excepção é um sinal lançado ao ser identificada uma condição que impede a execução normal do programa. As excepções podem ser tratadas de formas diversas: Termina o programa com mensagem de aviso e impressão do estado (inaceitável para sistemas críticos). Geridas em locais específicos, designados por manipuladores (handlers). LEEC@IST Java 22/58

23 Tratamento de excepções (1) No Java, uma excepção é um objecto da classe Exception, derivada da classethrowable. A gestão de excepções é feita nos seguintes passos: 1. Delimitar código onde podem ser geradas excepções (numa cláusulatry). 2. Se for detectada situação anómala, lançar uma excepção (numa cláusulathrow). 3. Inserir manipulador para as excepções lançadas (numa cláusulacatch). LEEC@IST Java 23/58

24 Tratamento de excepções (2) Formato típico dos métodos: try { instruções com testes tipo: if (teste) throw new IdExcepção(String); catch(idexcepção1 e) { instruções catch (IdExcepção2 e) { instruções //... tantos catches quantos necessários finally { instruções LEEC@IST Java 24/58

25 Tratamento de excepções (3) Uma cláusula try tem de ter pelo menos uma cláusula catch, ou finally. Podem estar associadas a uma cláusula try qualquer número de cláusulas catch, incluindo zero, desde que cada cláusula apanhe diferentes tipos de excepções. O corpo do try é executado até que uma excepção é lançada. Caso nenhuma excepção seja lançada o corpo do try termina com sucesso. LEEC@IST Java 25/58

26 Tratamento de excepções (4) Se uma excepção é lançada, cada cláusula catch é examinada, da primeira para a última, até que se encontre uma cujo tipo da excepção tratada seja compatível com a excepção lançada. Se a cláusula catch é encontrada, é executado o seu corpo. Mais nenhuma cláusula catch é executada. Se nenhuma cláusula catch é encontrada no respectivo método, a excepção passa de método para método na pilha de execução, até que uma cláusula try trate a excepção lançada. Caso esta cláusula nunca seja encontrada o programa termina abruptamente. LEEC@IST Java 26/58

27 Tratamento de excepções (5) Não é possível definir numa cláusula catch para apanhar excepções duma superclasse, antes duma cláusula catch para apanhar excepções duma subclasse. A primeira cláusula catch apanharia sempre a excepção, e a segunda cláusula catch nunca seria atingida. Por prevenção, existe um erro de compilação nestas situações. Se o try tem uma cláusula finally, o seu código é executado após todo o processamento no try estar completo (independentemente de o ter feito com sucesso, através do lançamento de uma excepção, ou com instruções return ou break). LEEC@IST Java 27/58

28 Tratamento de excepções (6) Apenas uma excepção é tratada numa cláusula try. Se uma cláusula catch ou finally lançarem outra excepção, as cláusulas catch da cláusula try não são reexaminadas. As cláusulas catch e finally encontram-se fora da protecção da correspondente cláusula try. Tais excepções são passadas de método para método na pilha de execução e poderão, contudo, vir a ser tratadas noutra cláusula try. LEEC@IST Java 28/58

29 Tratamento de excepções (7) Tipicamente, no tratamento de excepções são executadas as seguintes acções: 1. Registar mensagem de erro. 2. Recuperar o estado do objecto. 3. Chamar novamente o método de onde foi gerada a excepção. LEEC@IST Java 29/58

30 Tratamento de excepções (8) Se o programa gerar uma excepção, e no código não se indicar o bloco catch para tratamento da excepção, o JVM: 1. Aborta execução do programa. 2. Imprime no System.err a excepção gerada e a pilha de execução. LEEC@IST Java 30/58

31 Classes de excepções <<abstract>> Object <<abstract>> Throwable Error Exception LinkageError... RuntimeException... Java 31/58

32 Classe Throwable (1) Superclasse de todos os erros e excepções. Apenas objectos desta classe, ou subclasses, podem ser lançados na instruçãothrow e usados como argumentos da clásulacatch. LEEC@IST Java 32/58

33 Classe Throwable (2) Construtores: Throwable() Constrói um novo Throwable sem mensagem detalhada. Throwable(String message) Constrói um novo Throwable com a mensagem detalhada recebida. Throwable(String message, Throwable cause) Constrói um novo Throwable com a mensagem detalhada e causa recebidas. Throwable(Throwable cause) Constrói um novo Throwable com a causa recebida e mensagem detalhada (cause==null? null : cause.tostring()) (que tipicamente contém a classe e a mensagem detalhada da causa). LEEC@IST Java 33/58

34 Classe Throwable (3) Alguns métodos: Throwable initcause(throwable cause) Inicializa a causa destethrowable com a causa recebida como parâmetro. Este método pode ser chamado apenas uma vez, normalmente é chamado directamente no construtor, ou imediatamente após a sua construção. Se estethrowable foi criado com Throwable(Throwable) ou Throwable(String,Throwable) este método nunca pode ser chamado. Throwable getcause() Retorna a causa destethrowable, ounull. String getmessage() Retorna a messagem detalhada associada. void printstacktrace() Imprime no System.err a pilha de chamada dos métodos. LEEC@IST Java 34/58

35 Classe Error Usada para lançar excepções por falha do JVM. Normalmente não são tratadas pelo programador. Java 35/58

36 Classe Exception (1) J2SE dispõe 55 subclasses: ClassNotFoundException IOException (contém 21 subclasses)... Excepções do programador são subclasses de Exception. Java 36/58

37 Classe Exception (2) Construtores: Exception() Constrói uma nova Exception sem mensagem detalhada. Exception(String message) Constrói uma nova Exception com a mensagem detalhada recebida. Exception(String message, Throwable cause) Constrói uma nova Exception com a mensagem detalhada e causa recebidas. Exception(Throwable cause) Constrói uma nova Exception com a causa recebida e mensagem detalhada (cause==null? null : cause.tostring()) (que tipicamente contém a classe e a mensagem detalhada da causa). A classe Exception não introduz novos métodos. LEEC@IST Java 37/58

38 Exemplo (1) Exemplo de excepção do utilizador (divisão por zero): public class ExDivisãoPorZero extends Exception { public ExDivisãoPorZero() { super( Divisão por zero ); public ExDivisãoPorZero(String message) { super(message); LEEC@IST Java 38/58

39 Exemplo (2) public class Divide { protected int op1; public Divide() { op1=20; public int divide(int op2) { try { if (op2==0) throw new ExDivisãoPorZero(); return op1/op2; catch (ExDivisãoPorZero e) { System.out.println(e); return 1; LEEC@IST Java 39/58

40 Exemplo (3) public static void main (String args[]){ if (args.length!=1) { System.out.println( Um numero apenas! ); System.out.exit(0); Divide d = new Divide(); int result = d.divide(integer.parseint(args[0],10)); if (result==-1) System.exit(1); else { System.out.println(d.val()+ / +args[0]+ = +result); System.exit(0); LEEC@IST Java 40/58

41 Transferência de excepções (1) Frequentemente é de interesse a excepção ser tratada pelo objecto que chama o método (normalmente a recuperação depende do objecto que o chama). O método, onde a excepção pode ser gerada, deve indicar no cabeçalho throws IdExcepção No exemplo da divisão por zero, o método divide seria alterado para: public int divide(int op2) throws ExDivisãoPorZero { if (op2==0) throw new ExDivisãoPorZero(); return op1/op2; LEEC@IST Java 41/58

42 Transferência de excepções Para excepções derivadas de RuntimeExceptionou Errror não é obrigatorio a clausula throws Excepções directamente derivadas de Exception requrem uma clausula throws em qualquer método que lance e não trate essa excepção. LEEC@IST Java 42/58

43 Transferência de excepções (2) public static void main(string args[]) { if (args.length!=1) { System.out.println( Um numero apenas! ); System.out.exit(0); int result; Divide d = new Divide(); try { result = d.divide(integer.parseint(args[0],10)); System.out.println(d.op1()+ / +args[0]+ = +result); System.exit(0); catch (ExDivisãoPorZero e) { System.out.println(e); System.exit(1); LEEC@IST Java 43/58

44 Outro exemplo (1) public void lerficheirodados(string nomeficheiro) throws FicheiroDadosInválido { String ficheiro = nomeficheiro +.fasta ; FileInputStream in = null; try { in = new FileInputStream(ficheiro); parsarficheirodados(in); catch (IOException e) { throw new FicheiroDadosInválido(); finally { try { if (in!=null) in.close(); catch (IOException e) { //ignorar: ou lemos os dados correctamente // ou lançamos FicheiroDadosInválido LEEC@IST Java 44/58

45 Outro exemplo (2) No exemplo anterior tanto o construtorfileinputstream, como o métodoparsarficheirodados podem lançar excepções do tipoioexception. Quando é criada a excepçãoficheirodadosinválido é perdida informação da excepção que foi lançada. Criar novas excepções em substituição de outras é um mecanismos importante para subir o nível de abstracção. Mas como fazê-lo sem perder informação que pode ser necessária para se proceder à recuperação da excepção? Há duas soluções: 1. Usar o métodoinitcause da classethrowable. 2. Definir construtores da nova excepção que aceite um Throwable. LEEC@IST Java 45/58

46 Outro exemplo (3) catch (IOException e) { FicheiroDadosInválido fdi = new FicheiroDadosInválido(); fdi.initcause(e); throw fdi; catch (IOException e) { throw (FicheiroDadosInválido) new FicheiroDadosInválido().initCause(e); LEEC@IST Java 46/58

47 Outro exemplo (4) public class FicheiroDadosInválido extends Exception { public FicheiroDadosInválido() { public FicheiroDadosInválido(String msg) { super(msg); public FicheiroDadosInválido(Throwable causa) { super(causa); public FicheiroDadosInválido(String msg, Throwable causa) { super(msg, causa); catch (IOException e) { throw new FicheiroDadosInválido(e); LEEC@IST Java 47/58

48 Asserções definição Uma asserção serve para verificar um invariante. Um invariante é uma condição que deve ser sempre verdadeira. Java 48/58

49 Asserções Sintaxe: assert expr1 [: expr2] expr1 é uma expressão boolean ou Boolean. Quando é encontrado um assert no código: A expr1 é avaliada: Se expr1 for true, a asserção passa. Se expr1 for false, a asserção falha, e um AssertionError é construído e lançado. LEEC@IST Java 49/58

50 Asserções expr2 é uma expressão opcional que será passada ao construtor do AssertionError para descrever o problema encontrado. Se expr2 for um Throwable será o valor retornado pelo método getcause do correspondente AssertionError. Caso contrário, expr2 é convertida numa String e será a mensagem de detalhe do correspondente AssertionError. LEEC@IST Java 50/58

51 Asserções Não devem ser usadas asserções para testar maus funcionamentos que às vezes acontecem (IOException, NullPointerException,...). As asserções devem ser usadas apenas para testar condições que nunca devem falhar num programa correcto. Por exemplo: Testar se o estado corrente do objecto é correcto. Verificar o fluxo do código. LEEC@IST Java 51/58

52 Asserções Testar se o estado corrente do objecto é correcto: ao remover um objecto de um conjunto de objectos, se o objecto foi encontrado e removido é suposto o conjunto ter menos 1 elemento. public boolean remover(object objecto) { assert numelementos >= 0; if (objecto==null) throw NullPointerException( remover: objecto null ); int aux = numelementos; boolean objencontrado = false; try { //remover objecto do conjunto (se existir) return objencontrado; finally { assert ((objencontrado==false && numelementos==aux) (objencontrado==true && numelementos==aux-1); LEEC@IST Java 52/58

53 Asserções Verificar o fluxo do código: neste caso, quer-se proceder à substituição do valor antigo da tabela valores pelo valor novo, assegurando-nos que o valor antigo está sempre presente na tabela valores. private void substituir(int antigo, int novo) { for (int i=0; i<valores.length; i++) { if (valores [i ] == antigo) { valores [i ] = novo; return; assert false : substituir: valor +antigo+ não encontrado ; LEEC@IST Java 53/58

54 Asserções Por omissão, as asserções não são avaliadas. É possível ligar e desligar as asserções (para pacotes e classes). Quando as asserções estão desligadas não são avaliadas, por isso as expressões das asserções não devem produzir efeitos colaterias. assert ++i < max; i++; assert i < max; LEEC@IST Java 54/58

55 Asserções Para ligar e desligar as asserções: Ver na ferramenta java em: c Correr a aplicação na linha de comando com as seguintes opções -ea[:<packagename>... :<classname>] Liga as asserções para os pacote/classe dados. Se não forem dados pacotes/classes as asserções são ligadas para todas as classes (excepto classes de sistema). -da[:<packagename>... :<classname>] Desliga as asserções para o pacote/classe dadas. Se não forem dados pacotes/classes as asserções são desligadas para todas as classes. No caso dos pacotes use-se IdPacote... (IdPacote seguido de três pontos) que aplica a mesma opção a todos os subpacotes. LEEC@IST Java 55/58

56 Asserções Asserções por defeito estão desligadas Para ligar e desligar as asserções: no NetBeans: Properties do projecto > Run > VM Options No Eclipse: Run > Open Run Dialog > Arguments > VM Arguments ea. LEEC@IST Java 56/58

57 Asserções (8) Remover por completo as asserções: private static final asserçõesligadas = false; if (asserçõesligadas) assert false : asserções não estão desligadas ; LEEC@IST Java 57/58

58 Asserções (9) Tornando as asserções obrigatórias (uso propositado de efeitos colaterais na asserção): static { boolean asserçõesligadas = false; assert asserçõesligadas = true; if (!asserçõesligadas) throw new IllegalStateException( Asserções necessárias ); LEEC@IST Java 58/58

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido

Leia mais

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

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. 6 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. Uma exceção é um erro recuperável - O controlo da execução do programa

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 6 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. Uma exceção é um erro recuperável O controlo da execução do programa

Leia mais

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

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

Leia mais

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. 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

Leia mais

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. Conceito de Exceções. Exemplo Tratamento de Exceções Java Avançado Tratamento de Exceções Roberto Vedoato vedoato@joinville.udesc.br Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally

Leia mais

Notas de Aula 09: Tratamento de exceções

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

Leia mais

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

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que

Leia mais

Tratamento de Exceções. Julio Cesar Nardi

Tratamento de Exceções. Julio Cesar Nardi Tratamento de Exceções Julio Cesar Nardi Tratamento de Exceções Objetivos: Identificar os tipos de erros em programas Java; Compreender o mecanismo de controle de exceções; Agenda Controle de Exceções

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento

Leia mais

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

Programação Java. Tratamento de Exceções Programação Java Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivações para Exceções Um método pode detectar uma falha mas não estar apto a resolver sua

Leia mais

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

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

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

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 andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo

Leia mais

Mecanismo de exceções em Java

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 (palex@cc.isel.ipl.pt) Conceito de exceção Erro de execução provocado por condição

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Carlos Bazilio Isabel Rosseti Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense Motivação prever na implementação do sistema situações

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

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

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Terminologia Definições: Exceção é a ocorrência de uma condição anormal durante a execução de um método Falha

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

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 paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

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

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 (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito

Leia mais

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

1. Estude e implemente a classe Exemplo1 apresentada abaixo: P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:

Leia mais

TRATAMENTO DE EXCEÇÕES

TRATAMENTO DE EXCEÇÕES Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma

Leia mais

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

22/9/16. Agenda. Erros. Erros. Exceções. Mecanismo de exceções Agenda Desenvolvimento OO com Java Exceções Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Apresentar o mecanismo de tratamento de exceções de Java; Explicar os diferentes

Leia mais

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

Tratamento de Exceções. Prof. Marcelo Roberto Zorzan Tratamento de Exceções Prof. Marcelo Roberto Zorzan Tratamento de Exceções Aula de Hoje Problema 1 Desenvolva uma aplicação Java que receba como entrada dois valores numéricos, calcule a divisão entre

Leia mais

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

Prof. Fernando V. Paulovich  8 de novembro de SCC Programação Orientada a Objetos Tratamento de Exceções SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC)

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

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

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

Leia mais

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

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Sistemas de Tratamento de Exceções Exceções genéricas Classes de exceções

Leia mais

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. 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

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

Tipos, Literais, Operadores

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

Leia mais

Tipos, Literais, Operadores

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

Leia mais

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

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula Prof. Rogério Albuquerque de Almeida Programação Orientada a Objetos II JAVA Décima Segunda Aula 1 Prof. Rogério Albuquerque de Almeida Programação Orientada a Objeto II Vetores Tratamento de Exceções

Leia mais

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

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Tratamento de Exceções Try Catch Finally Lista de Exercícios Introdução As exceções são uma indicação de um problema

Leia mais

Tratamento de Exceções em Java

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.

Leia mais

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

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Linguagem Java - Introdução

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

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade pdjkleber@gmail.com Tratamento de Exceções Quem pensa pouco, erra muito Leonardo da Vinci Exceções!!! 12/09/2011 Prof. Kléber de Oliveira

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

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

Leia mais

O tratamento de erros em Java

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

Leia mais

[Desenvolvimento OO com Java] Organizando suas classes

[Desenvolvimento OO com Java] Organizando suas classes Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Organizando suas classes Este obra está licenciada com uma licença

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Herança de classes concretas e Object A superclasse que passamos para a cláusula extends não precisa ser

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

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

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Exceções AULA 13 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Exceções Objetivo Depois desta aula você será capaz

Leia mais

Java para Desktop. Exceções JSE

Java para Desktop. Exceções JSE Java para Desktop Exceções JSE ocorrência que altera o fluxo do programa. As exceções podem ocorrer por falhas de hardware, exaustão de recursos e erros. Usar tratamento de exceções permite detectar erros

Leia mais

Programação Estruturada e Orientada a Objetos

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: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

Leia mais

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

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

Leia mais

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

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.

Leia mais

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

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 14 Prof. ISVega Maio de 2004 Mecanismo de Exceções em Java CONTEÚDO 14.1Erros,

Leia mais

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

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

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

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

O problema da herança múltipla e o uso de Interfaces. Herança múltipla. Interfaces. Definindo Interfaces 30/11/2016 O problema da herança múltipla e o uso de Interfaces Herança múltipla O Java não permite o uso de herança múltipla. Cada classe só pode herdar de uma única classe diretamente. X X Interfaces Uma interface

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

Membros estáticos e Pacotes

Membros estáticos e Pacotes Desenvolvimento OO com Java Membros estáticos e Pacotes João Paulo A. Almeida Adaptado de Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática

Leia mais

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 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

Leia mais

Pacotes Organizando suas classes e bibliotecas

Pacotes Organizando suas classes e bibliotecas Pacotes Organizando suas classes e bibliotecas Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU Aula 1 POO 1 Prática Profa. Elaine Faria UFU - 2019 Introdução Java Linguagem de programação poderosa Utiliza o paradigma Orientado a Objetos Muito utilizada em aplicativos para Internet e para redes Difundida

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Tratamento de Erros Até agora não nos preocupamos com erros em nosso programa, apenas assumimos que tudo

Leia mais

Desenvolvimento OO com Java Organizando suas classes

Desenvolvimento OO com Java Organizando suas classes Desenvolvimento OO com Java Organizando suas classes Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

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

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

Leia mais

JAVA. Professor: Bruno Toledo

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

Leia mais

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Classes e Objetos. Prof. Fernando V. Paulovich  9 de agosto de 2010 Classes e Objetos SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

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

[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

Leia mais

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

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

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Capítulo 3 A Construção de Aplicativos Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Palavras reservadas Introdução à Linguagem Java abstract default goto null synchronized

Leia mais

Controlando Erros com Exceções

Controlando Erros com Exceções Controlando Erros com Exceções 1 Motivação p O que aconteceria ao tentar chamar o método saca com um valor fora do limite? p O sistema mostraria uma mensagem de erro, mas quem chamou o método saca não

Leia mais

Programação Orientada a Objetos. Manipulação de Exceções

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Prof. Walter Gima walter.gima@anhanguera.com 1 Tratamento de Exceção 2 Agenda Tratamento de Exceção Tipos de Exceptions Lançar Exceções 3 Exceção indicação de que algo

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

No final deste curso, saberás criar programas através da linguagem de programação Java.

No final deste curso, saberás criar programas através da linguagem de programação Java. Programação em Java Programação Formato: Mentored - Online Preço: 415 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração: ~45h

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Java Standard Edition (JSE)

Java Standard Edition (JSE) Java Standard Edition (JSE) 10. Controle de Exceções Esp. Márcio Palheta Gtalk: marcio.palheta@gmail.com 1 Ementa 10. Controle de Exceções; 11. O pacote java.lang; 12. O pacote java.io; 13. Collection

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

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

Programação de Computadores II TCC /Turma A 1 Programação de Computadores II TCC 00.174/Turma A 1 Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes Conteúdo: Tratamento de exceções Material elaborado pelos profs. Anselmo Montenegro

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

Fundamentos da programação Parte - 1

Fundamentos da programação Parte - 1 Fundamentos da programação Parte - 1 1. Objetivos Nesta lição discutiremos as partes básicas de um programa em Java. Começaremos explicando as partes do programa Hello.java mostrado na última lição. Discutiremos

Leia mais

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

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. 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

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

Exceções. Criando suas exceções

Exceções. Criando suas exceções Exceções Criando suas exceções Tratamento de Exceções O tratamento de exceções em Java permite o gerenciamento de erros em tempo de execução. Uma exceção em Java é um objeto que descreve uma condição de

Leia mais

Instituto Politécnico de Setúbal. Escola Superior de Tecnologia. Departamento de Sistemas e Informática. Guia para codificação em JAVA

Instituto Politécnico de Setúbal. Escola Superior de Tecnologia. Departamento de Sistemas e Informática. Guia para codificação em JAVA Instituto Politécnico de Setúbal Escola Superior de Tecnologia Departamento de Sistemas e Informática Guia para codificação em JAVA Disciplina de Introdução à Programação Ano Lectivo 2003/2004 CONTEÚDO

Leia mais

PROGRAMAÇÃO JAVA. Parte 3

PROGRAMAÇÃO JAVA. Parte 3 PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais