| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 14:27:54
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
A classe "Teste2" abaixo vai compilar?
Lembrando que as 2 exceções herdam indiretamente de Exception.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 14:29:53
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
Se não tiver nenhuma pegadinha sintática, sim.
A classe Teste2 usa o try...catch(Exception e) anti-pattern.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 14:30:25
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
Ou a resposta é óbvia (vai compilar) ou eu não estou vendo a pegadinha.
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 14:32:45
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Foi isso que eu pensei tb Srs.
Postei isso pq me deparei com isso no projeto em que estou trabalhadno.
Mas o compilador reclamou que a minha classe "Teste2" nao conhece as 2 Exceptions mostradas no exemplo. Tiver que importar elas.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 14:46:40
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Alguem pode me explicar o pq disso?
Pq eu achei HORRIVEL ter que adicionar no meu caso de uso a lib do J2EE pra satisfazer o compilador. Nao queria que a minha classe tivesse conhecimento delas. Dai o "catch" mais amplo.
Fiquei meio confuso.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:01:49
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
fabiocsi wrote:Alguem pode me explicar o pq disso?
Pq eu achei HORRIVEL ter que adicionar no meu caso de uso a lib do J2EE pra satisfazer o compilador. Nao queria que a minha classe tivesse conhecimento delas. Dai o "catch" mais amplo.
Fiquei meio confuso.
Isso é inevitável.
Na linha com *** O compilador vê o método metodoQualquer() e pela sua assinatura sabe que ele pode lançar a exceção. Como é uma exceção verificada, deve ser ou tratada ou relançada. Isso significa que ou você dá catch ou você da throws, e por isso DaDaDa teria que fazer isso.
Basicamente o throws de metodoQualquer diz "quem for usar esse método deve se preocupar com ExceptionQualquer". Isso implica que quem for usar metodoQualquer() deve ter conhecimento sobre ExceptionQualquer.
This message was edited 2 times. Last update was at 17/07/2008 15:03:54
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:07:43
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
victorwss wrote:
Basicamente o throws de metodoQualquer diz "quem for usar esse método deve se preocupar com ExceptionQualquer". Isso implica que quem for usar metodoQualquer() deve ter conhecimento sobre ExceptionQualquer.
E se eu te disser que, em vez de usar try/catch, eu simplesmente usar "throws Exception", compila, sem ter necessidade da minha classe "Teste2" ter conhecimento das exceções?
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:33:55
|
raphaelrabadan
JavaBaby
Membro desde: 23/06/2008 14:09:48
Mensagens: 95
Localização: Recife-PE
Offline
|
fabiocsi wrote:
victorwss wrote:
Basicamente o throws de metodoQualquer diz "quem for usar esse método deve se preocupar com ExceptionQualquer". Isso implica que quem for usar metodoQualquer() deve ter conhecimento sobre ExceptionQualquer.
E se eu te disser que, em vez de usar try/catch, eu simplesmente usar "throws Exception", compila, sem ter necessidade da minha classe "Teste2" ter conhecimento das exceções?

Epa! Pelo que entedi você disse que, ao usar o catch com Exception ao invés de, por exemplo, MessagingException você precisará importa a MessagingException mesmo assim? Se for isso, não é verdade.
Veja essas 2 classes baseadas no seu próprio exemplo, elas funcionam normalmente.
É isso mesmo que você quer dizer?
This message was edited 2 times. Last update was at 17/07/2008 15:35:03
|
- Pós graduado em Engenharia de Software pela FBV
- Graduado em Análise e Desenvolvimento de Software pelo UNIBratec
- Sun Certified Programmer for the Java Platform, Standard Edition 6 (98%)
- Sun Certified Associate for the Java Platform, Standard Edition 1.0 (88%)
- Preliminary English Test (PET)
[ Next Targets: SCWCD, Software Engineering mSC] |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:41:52
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Testei aqui e funciona mesmo sem os imports... porem qdo eu tirei do classpath do caso de uso a Lib do J2EE que contem as exceptions que mencionei, o compilador voltou a reclamar.
JDeveloper fundindo meu cérebro.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:48:48
|
raphaelrabadan
JavaBaby
Membro desde: 23/06/2008 14:09:48
Mensagens: 95
Localização: Recife-PE
Offline
|
fabiocsi wrote:Testei aqui e funciona mesmo sem os imports... porem qdo eu tirei do classpath do caso de uso a Lib do J2EE que contem as exceptions que mencionei, o compilador voltou a reclamar.
JDeveloper fundindo meu cérebro.
Hehehe, mas no caso, quem ta reclamando, Teste1 ou Teste2? Teste1 precisa das exceptions no classpath para que ele possa usá-las. Acho que é isso.
|
- Pós graduado em Engenharia de Software pela FBV
- Graduado em Análise e Desenvolvimento de Software pelo UNIBratec
- Sun Certified Programmer for the Java Platform, Standard Edition 6 (98%)
- Sun Certified Associate for the Java Platform, Standard Edition 1.0 (88%)
- Preliminary English Test (PET)
[ Next Targets: SCWCD, Software Engineering mSC] |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 15:52:28
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Teste2 que ta reclamando
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/07/2008 17:22:21
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
fabiocsi wrote:Teste2 que ta reclamando 
Teste1 deveria reclamar também.
Mas independente de Teste1 reclamar, Teste2 reclamará sempre. O compilador não olha apenas o nome dos métodos, o retorno e os parâmetros. Ele tem que olhar as exceções também. Daí como ele não encontra a classe. Dá erro. Mas não precisa dar import nelas se você colocar catch ou throws para Exception ou Throwable.
Imagine que isso ocorra no retorno de um método. Se metodo1 retorna ClasseA; ClasseB usa metodo1, mas sem usar o retorno (como se fosse void); e ClasseA não esteja no classpath, o compilador vai reclamar.
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
|
|