@Consumes批注引发异常,如何处理

布罗迪曼

我的服务接受Json并为我使用它,并将其映射到我的DTO。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/service")
@Produces(MediaType.APPLICATION_JSON)
public Response myService(Request requestBody) {
     //Stuff
}

但是,如果该特定元素为null,则DTO中的某些字段将抛出JsonMapperException异常。

由于这是在我真正进入服务之前发生的,因此如何才能正常处理此异常并返回带有自定义错误代码和消息的Json?

此外,如何将元素标记为“可选”,以便映射器在元素为null或丢失时将忽略它,而在元素为非空时将其序列化?

布罗迪曼

要回答我自己的问题。

之所以抛出异常,是因为我试图在DTO中进行逻辑处理。如果传入的元素为NULL,则该逻辑将失败。解决这个问题没有简单的方法。

但是,最佳实践要求在DTO中尽可能少地执行逻辑。因此,我只是将逻辑移到了服务的主要方法上,并在那里进行了计算。

问题解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何处理在单元测试嘲笑RxJava2观察到引发异常

如何处理异常并退出?

如何处理RxJava中观察者的onNext引发的异常?

如何处理引发检查异常的静态最终字段初始化程序

我应该如何处理SwingUtilities.invokeAndWait引发的异常

parallelStream如何处理异常?

引发异常后,如何处理SFTP入站适配器轮询中的剩余文件?

如果渔获物引发异常,我应该如何处理它们?

EJB如何处理异常?

RestSharp-如何处理非200响应?RestClient在执行时引发异常

如何处理FirebaseAuth异常

如何处理Monix onErrorHandle中未处理的异常引发

如何处理InvalidSchema异常

在处理另一个异常时,我应该如何处理记录器引发的异常?

如何处理登录异常?

如何处理跨执行边界的libstdc ++引发异常

我该如何处理Process.run引发的异常

如何处理在较低级别的程序包或函数调用时引发的异常?

我该如何处理在承载它的组件/页面的Blazor子组件中引发的异常?

如何处理PHP 5.4中的方法引发的异常?

如何处理为未定义函数引发的异常?

我应该如何处理WCF服务中引发的异常?

如何处理ContentProvider的异常?

如何处理DbTransaction的Commit()或Rollback()引发异常?

如何处理未引发为异常的SQLITE错误,例如“没有命名的列”?

如何从处理程序引发异常

如何处理从Undertow工作线程引发的异常?

如何处理关闭文件引发的异常?

如何处理 HttpAsyncClient 异常