使用Thorntail版本2.2.0.Final和RESTEasy版本3.0.24.Final,我们尝试创建一个通用ExceptionMapper
,它将为所有未处理的异常(即{{1}的任何实例)返回500 },例如Exception
,NullPointerException
等
我们设法做到这一点相当容易,但遇到了一个真正有问题的问题;通过为ArrayOutOfBoundsExecption
创建一个ExceptionMapper
,在处理Exception
和RESTEasy WebApplicationException
时也会调用它。
由于在我们的情况下,这两种类型的Exception的默认行为是正确的,所以我们认为只需在Failure
中不返回任何Response
(即null
)方法,代码将以默认行为继续处理这些问题。
但是,当我们进行测试时,预期响应为401(NotAuthorizedException)时得到了204。
我看了看代码,handleException
method似乎按照我们认为的方式工作;但是,在查看executeExceptionMapper
method时,我们对发生的行为感到困惑,因为如果toResponse
方法返回toResponse
,则返回204,而executeExactExceptionMapper
method则不起作用,它只是让异常滚动到下一个处理程序;为什么有区别?