添加异常处理是一种很好的做法,但我有一个疑问,在我们的数据库中,我们有10个SP,可以通过我们的数据访问层访问,逻辑不多,查询也不大。保留的目的SP中的查询是允许将分页数据轻松传递到表示层。所以,我的问题是,如果不包含大型复杂查询,在这种情况下是否应该将错误处理添加到SP中?
答案 0 :(得分:3)
是
TRY / CATCH将捕获错误,否则将停止存储的proc运行,例如,数据类型转换错误。它还允许您在CATCH块中记录错误,例如,或重试(例如,让proc调用自己)
答案 1 :(得分:2)
大多数分页查询应该是单个SELECT
语句,如果您使用SET ROWCOUNT
/ LIMIT
进行优化,则可能是两个。我不认为在这个实例中可能发生的任何错误都可以在数据库中处理。
通常,在数据库级别实现错误处理的主要原因是将其与事务逻辑结合使用,以便在必要时在适当的时间回滚正确的更改。如果您实际上没有执行任何DML,我真的没有理由编写特殊的错误处理代码。
当然你还没有向我们展示这里的查询......如果你 在那里写了一些多语句DML,那么就把它放在一边这个事实说明这是一个奇怪的事情。在分页查询中,您可能希望进行某种错误处理。重要的不是查询的 size ,而是查询所做的;如果您正在对数据进行修改,那么您应该考虑实现错误处理,但如果没有,那么我认为没有任何理由。