gpt4 book ai didi

java - JAX-RS 中的异常处理

转载 作者:行者123 更新时间:2023-12-02 09:04:22 25 4
gpt4 key购买 nike

java 8, Spring ,休息

我试图捕获来自异常映射器的响应,并在引发异常的调用者中对其执行某些操作。谢谢。

@Provider
public class CustomerExceptionHandler implements ExceptionMapper<CustomerException>
{
@Override
public Response toResponse(CustomerException exception)
{
return Response.status(Status.BAD_REQUEST).entity(CustomerException.getMessage()).build();
}
}


public class CustomerException extends Exception implements Serializable
{
private static final long serialVersionUID = 1L;

public CustomerException() {
super();
}
public CustomerException(String msg) {
super(msg);
}
public CustomerException(String msg, Exception e) {
super(msg, e);
}
}



public class ExceptionDemo{

public void getExceptionResponse(){
//do something
throw new CustomerException("Something is wrong");// CustomerExceptionHandler is going to return me a Response, how can I capture the response here?
//capture response and do something with it
}
}

最佳答案

我不确定ExceptionMapper是否按照您认为的方式工作。

当端点中的某些代码抛出异常,并且该异常一路渗透出端点并返回到容器本身(在本例中为 Spring)时,然后 注册的 咨询 ExceptionMapper 以查看它们是否与抛出的异常匹配,并调用相关的 public Response toResponse(T e) {} 方法将其转换为 Response.

ExceptionMapper 不会作为端点代码的一部分被调用,并且您将无法根据其结果Response 采取操作,因为它没有'还没有被叫到。您只需将异常从端点中抛出即可。

关于java - JAX-RS 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59939556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com