当前位置: 首页 > 知识库问答 >
问题:

在客户端捕获Rest异常

甄志
2023-03-14

我有一个从服务器端抛出的异常,我希望在客户端捕捉到这个异常。异常应该使用Jersey通过REST发送。这是我目前所掌握的:

定义我的异常:

public class MyException extends Exception implements Serializable {

    private static final long serialVersionUID = 1L;

    public MyException () {
        super();
    }
    public MyException (String msg)   {
        super(msg);
    }
    public MyException (String msg, Exception e)  {
        super(msg, e);
    }
}
@Provider
public class TestMapper implements ExceptionMapper<MyException> {

    @Override
    public Response toResponse(MyExceptionexception){
        return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build(); 
    }
}
@PUT
@Path("calculate")
public void calculateMethod(String id) throws MyException{
   //Other code...
    throw new MyException("custom error message string");
    }       
}
public void calculateMethodClient(String id) throws MyException{
    client().put("/test/", "calculate", id);
}
public boolean testClient(){
    try {
        client.calculateMethodClient((String) id);
        return true;
    } catch (MyException) {
        return false;
    } catch (UniformInterfaceException e){
        return false;
    }
}

共有1个答案

谯英彦
2023-03-14

您需要检查客户端的状态代码,如果它是一个错误的请求,则在那里抛出异常以及从服务器获得的异常消息。

 类似资料:
  • 问题内容: 我有一个node.js应用程序,我想使用它来检查特定站点是否启动并返回正确的响应代码。我希望能够捕获由于域名无法解析或请求超时而出现的任何错误。问题是这些错误导致Node无法处理。我是整个异步编程方法的新手,所以我不确定将try / catch语句放在哪里。 我有一个ajax调用,该调用类似于/ check / site1。服务器端调用一个函数,该函数尝试建立连接,然后返回status

  • 如何捕获<code>reactor.netty.http.client。使用。WebClient来检索和无限? 为了重现这个问题,我创建了两个简单的Spring Boot应用程序。两者都基于。 服务器代码是: 客户代码是: 点击<code>http://localhost:9000/stop在web浏览器中,客户端被终止,并且此错误出现在客户端的控制台上。 我希望能够捕获该错误,以便我可以恢复。(

  • @ControllerAdvice类是RestResponseEntityExceptionHandler.java。 我被告知,默认情况下spring boot应该返回如下所示的内容 我给它的不存在的路径是 我的控制器类是Breweries_Controller

  • 我正在尝试创建RESTful web服务,但无法使删除生效,我不确定问题在哪里。我认为问题在客户端项目中,但也可能在服务器项目的资源类中。 我有一个使用这种方法的学生道课,我不认为这是一个问题,因为它适用于其他项目。 我有一个StudentResource类,它是我从包含这段代码的模式中创建的RESTful资源 然后,我创建了一个java项目,并使用此方法创建了名为OneStudent的RESTf

  • 我在Quarkus(1.8.1)服务中有一个Rest客户机,定义如下: 我在同一个包中实现了,如下所示: 当我调用服务时,它当前返回一个404错误,我希望调用类中的代码。但是,它没有,而是抛出。堆栈跟踪包括对的调用。好像我的映射器还没有注册。 对于来自服务调用的无效响应,我如何注册我的处理程序?

  • 我最近从Ruby的Net:HTTP类切换到rest-client 1.6.7。