如何删除类方法中的trycatch重复项?

如何删除类方法中的trycatch重复项?,第1张

如何删除类方法中的try / catch重复项?

您问题中的评论为您指明了正确的方向。由于答案未提及,因此我将在此答案中概述一般思想。

延伸
WebApplicationException

JAX-
RS允许定义Java异常到HTTP错误响应的直接映射。通过扩展

WebApplicationException
,您可以创建特定于应用程序的异常,这些异常将使用状态码和可选消息作为响应的主体来构建HTTP响应。

以下异常生成

404
状态代码为HTTP的响应:

public class CustomerNotFoundException extends WebApplicationException {        public CustomerNotFoundException() {      super(Responses.notFound().build());    }        public CustomerNotFoundException(String message) {      super(Response.status(Responses.NOT_FOUND).      entity(message).type("text/plain").build());    }}

WebApplicationException
是a
RuntimeException
,不需要将其包装在
try
-
catch
块中或在
throws
子句中声明:

@Path("customers/{customerId}")public Customer findCustomer(@PathParam("customerId") Long customerId) {    Customer customer = customerService.find(customerId);    if (customer == null) {        throw new CustomerNotFoundException("Customer not found with ID " + customerId);    }    return customer;}
创建
ExceptionMapper
s

在其他情况下,抛出

WebApplicationException
或扩展类的实例可能不合适
WebApplicationException
,而是将现有异常映射到响应可能更可取。

在这种情况下,可以使用自定义异常映射提供程序。提供者必须实现该

ExceptionMapper<E extendsThrowable>
接口。例如,以下将JAP映射
EntityNotFoundException
到HTTP
404
响应:

@Providerpublic class EntityNotFoundExceptionMapper     implements ExceptionMapper<EntityNotFoundException> {    @Override    public Response toResponse(EntityNotFoundException ex) {      return Response.status(404).entity(ex.getMessage()).type("text/plain").build();    }}

EntityNotFoundException
引发an时,实例的
toResponse(E)
方法
EntityNotFoundExceptionMapper
将被调用。

@Provider
注解声明了类是感兴趣的JAX-
RS运行。可以将该类添加到
Application
配置的实例的类集中。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5500450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存