Cha*_*adD 7 error-handling sql-server-2005
我遇到一个存储过程,在更新尝试后立即有以下错误处理块.以下是SP的最后几行.
这样做有什么好处吗?在我看来好像这个代码只是重新抛出它没有添加任何值时捕获的相同错误,并且如果Try Block完全被忽略,代码可能会表现为100%相同.
如果省略TRY块,那么生成的SP的行为会有什么不同吗?
BEGIN CATCH
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSev = ERROR_SEVERITY(), @ErrState = ERROR_STATE()
RAISERROR (@ErrMsg, @ErrSev, @ErrState)
END CATCH
Run Code Online (Sandbox Code Playgroud)
除非返回的任何消息的“行错误发生在”部分将引用 RAISERROR 行而不是实际发生错误的行,否则不会有任何区别。这样做的主要原因正如 @Chris 所说,允许您以编程方式使用/操作错误数据。
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |