为什么在SQL SERVER中没有给出finally块?

时间:2010-09-11 05:27:16

标签: sql sql-server error-handling

所有语言如C#,VB.NET都尝试捕获最终块但SQL服务器只有尝试并且只捕获为什么不给出最终阻塞是否有任何具体原因?

3 个答案:

答案 0 :(得分:7)

TRY ... CATCH块还有许多其他问题,例如你不能完全重新抛出错误,所以我会使用C#错误处理任何复杂的东西。我已经写了一整章书,你可以免费下载pdf here

答案 1 :(得分:0)

这是因为默认的错误处理通常足够好。过去很难编写可以编译但导致一些错误的代码。

答案 2 :(得分:0)

在我看来,TRY / CATCH / FINALLY是一个非常多的过程式编程方法,因此没有真正的地方或需要包含在T-SQL中,被认为是非常多的基于SET的编程语言。

正如 wallyk 所述并且我同意,T-SQL中现有的TRY / CATCH块满足绝大多数要求。

我想知道您是否正在尝试实现在应用程序层中更好地容纳/管理的复杂流程逻辑。