我有一个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/