Dúvida em comportamento de exception após chamada de result.use(...)

29 views
Skip to first unread message

Renan Reis

unread,
Nov 5, 2012, 11:05:24 AM11/5/12
to caelum-vraptor-dev
Prezados,

após chamar o result.use se uma exception for lançada, o retorno do meu método do controller é 200 (ou oque for setado).

exemplo:

result.use(Results.json()).withoutRoot().from(objeto).serialize();
throw new RuntimeException("erro");

retorno 200 ao invés de 500.

Pode parecer meio absurdo mas vou exemplificar um caso, posso ter um interceptor que executa uma lógica depois da chamada da lógica do controller, então ali podem haver exceções, não seria interessante retornar erro 500 se isso ocorrer?

grande abrasssss

Lucas Cavalcanti

unread,
Nov 5, 2012, 11:10:18 AM11/5/12
to caelum-vr...@googlegroups.com
depois que vc começou a escrever no response não dá pra mudar o status code...


2012/11/5 Renan Reis <renanrei...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor-dev" group.
To post to this group, send email to caelum-vr...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vraptor-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor-dev?hl=en.

Renan Reis

unread,
Nov 6, 2012, 8:49:39 AM11/6/12
to caelum-vr...@googlegroups.com
Opa, valeu Lucas.

Apenas a titulo de curiosidade, não sei como isso funciona ainda, mas eu conseguiria gravar a chamada do result.use(...) e escrever no response apenas no final do ultimo interceptor?

grande abrasssss

Lucas Cavalcanti

unread,
Nov 6, 2012, 10:25:15 AM11/6/12
to caelum-vr...@googlegroups.com
conseguir vc sempre consegue ;)

envolve criar uma implementação de Result (muito parecida com a ExceptionHandler) que grava o que vc chamou e executa só depois...

e criar um interceptor pra rodar depois do ExecuteMethodInterceptor, com o código antes do stack.next(), ou um dos primeiros interceptors, com o código depois do stack.next

2012/11/6 Renan Reis <renanrei...@gmail.com>
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor-dev" group.

Renan Reis

unread,
Nov 7, 2012, 8:51:59 AM11/7/12
to caelum-vr...@googlegroups.com
Acha que esse seria o comportamento ideal?

abrasss

Lucas Cavalcanti

unread,
Nov 7, 2012, 10:07:38 AM11/7/12
to caelum-vr...@googlegroups.com
não sei... talvez não em geral. Precisava pensar se isso não daria pau em algum caso estranho...

a gente pode criar um modificador que faça isso... tipo:

result.delayed().redirectTo(....)

que acha?

On Wed, Nov 7, 2012 at 11:51 AM, Renan Reis <renanrei...@gmail.com> wrote:
Acha que esse seria o comportamento ideal?

abrasss

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor-dev" group.
Reply all
Reply to author
Forward
0 new messages