Throwable.getCause()递归执行?

时间:2017-07-04 13:17:19

标签: java exception throwable

我正在使用Java EE编写后端用户验证,我对这段代码有疑问。在while循环中,如果查看调试器并单击cause,它将继续递归,即使Application运行正常(它响应)。这是正确的代码,因为我从讲义中获取了它,但它没有解释这一点。我没有包括整个类,有很多依赖。你能解释一下为什么会这样吗?请查看调试器的屏幕截图。

@Provider
public class RollbackExceptionMapper implements ExceptionMapper<RollbackException> {

    @Override
    public Response toResponse(RollbackException rbe){

        Throwable cause = rbe.getCause();

        while (cause != null && !(cause instanceof ConstraintViolationException)){
            cause = cause.getCause();       //Breakpoint here
        }

enter image description here

0 个答案:

没有答案