我有一个SQL语句,我希望它会返回一行,因为我传递的是主键。所以我的选择是
我在某处读到了一个EmptyResultDataAccessException,因为它扩展了运行时异常,这是一种不好的做法。
但我看不出它有什么问题。
我有兴趣听取意见
答案 0 :(得分:2)
我认为抓住这个例外是完全可以接受的。这是我记得的唯一一个我能记得的Spring异常,但我有一些有效的用例试图找到一个可能不存在的记录。
答案 1 :(得分:1)
大多数时候我遇到过这个问题(mvc / ws)我会抛出异常,但是在异常解析器中处理异常。返回null的问题在于应用程序依赖于它并且在未来的路上,您将不得不在以后进行空检查而不是在预期存在时进行空检查。这可能会导致问题,因为并非所有开发人员都可能在需要时进行空检查,然后您可能会遇到npe。根据您编写的应用程序类型,有几种方法可以使用异常解析程序捕获和处理异常。通过使用异常解析程序,您可以以不同方式处理每个异常并向用户提供反馈。
这是使用spring mvc执行此操作的一种方法。这样,如果具有主键的对象不存在,您可以向用户发送一般消息。 http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/