Problema para capturar exceção
31/12/2012 13:20
0
Tenho um método em um service que lança uma exceção personalizada. A exceção é bem básica:
class FooException extends Exception {}

O problema é que no meu controller a exceção não está sendo capturada.
tenho o catch para a minha FooException e um outro catch para Exception, porém mesmo lançando explicitamente a FooException
o que chega no meu controller é uma UndeclaredThrowableException:
try {
//chama o meu método do service que lança a FooException
...
} catch (FooException fe) {
// :/
} catch (Exception e) {
// chega a UndeclaredThrowableException e sempre cai neste catch
}


Alguem sabe como resolver isto?

Grato
Tags: exception, UndeclaredThrowableException, catch


0
Simples, se o que ocorre é uma UndeclaredThrowableException, não tem como cair no primeiro catch.
Afinal sua FooException estende Exception e não UndeclaredThrowableException.


0
O que eu não entendi é o porque de chegar um UndeclaredThrowableException no meu controller, pois o método que meu controller chama lança a exceção 'throw new FooException()', então ela deveria parar sim no catch (FooException fe).

No java se não declararmos no método que ele pode lançar determinada exceção
public void fooMethod() throws FooException {
// ...
}

(com o throws FooException) ele encapsula a exceção como um UndeclaredThrowableException, porém pelo que já li na documentação do groovy não precisamos declarar o throws... no método, esta é mais uma das características dinâmicas do groovy.

Encontrei uma pessoa com o mesmo problema, a solução utilizada por ela não deu certo pra mim (aqui).


Alguém tem alguma idéia do q pode estar acontecendo?
03/01/2013 00:10


0
Acho que já sei o que houve.

É que em Groovy você não é obrigado a escrever todos os "throws" na assinatura de um método para as possíveis exceções checadas.
Assim, vai ver seu fooMethod() em verdade lançou uma exceção que não foi sua FooException, entendeu?



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto