java – 我应该捕获EmptyResultDataAccessException吗?

我有一个sql语句,我希望将返回一行,因为我传递的是主键.所以我的选择是

>将tryForObject包装在try / catch中,捕获EmptyResultDataAccessException,并返回null
>将调用更改为queryForList,并打开List并(希望)返回第1个元素,或者为null.

我在某处读取了一个EmptyResultDataAccessException,因为它扩展了运行时异常,这是一个不好的做法.

但我看不出有什么不妥.

我有兴趣听取意见

最佳答案
大多数时候我遇到了这个(mvc / ws)我抛出异常但在异常解析器中处理异常.返回null的问题在于应用程序依赖于它并且在未来的路上,您将不得不在以后进行空检查而不是在预期存在时进行空检查.这可能会导致问题,因为并非所有开发人员都可能在需要时进行空检查,然后您可能会遇到npe.根据您编写的应用程序类型,有几种方法可以使用异常解析程序捕获和处理异常.通过使用异常解析程序,您可以以不同方式处理每个异常并向用户提供反馈.

这是使用spring mvc完成它的一种方法.这样,如果具有主键的对象不存在,您可以向用户发送一般消息. http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...