error-handling - SQL Try-Catch block 可以处理抛出的 CLR 错误吗?

标签 error-handling clr try-catch

我们使用 SQL 2005 和 try-catch 功能来处理数据库中的所有错误处理。我们目前正致力于部署 .NET CLR 函数以在数据库中进行一些 WCF 调用。此 WCF 过程在 CLR 中编写,然后部署到 SQL。如果我在 CLR 代码中放置一个 try-catch block ,它会很好地捕获错误。但是,我似乎无法将错误抛出到 SQL 中的 try-catch block 。 SQL 似乎忽略了我抛出的内容并捕获了它发现的错误。两者之间是否没有关系(即我不能从一个扔到另一个?)

如果我可以从 CLR 中抛出到 SQL 中的调用过程,是否需要任何特殊格式?我尝试了捕获抛出的错误的特定情况,然后抛出不同的错误,但是 SQL 忽略了我抛出的错误并捕获了原始错误,就好像它忽略了抛出的错误一样。

最佳答案

这是一篇高层次的博文: Exception handling in SQLCLR

When SQL server execute a user function/procedure/trigger implemented in CLR (i.e., managed code), we will install a managed exception handler around the user code. So if the user code leaked a exception, the server will catch it and throw a TSQL exception wrapping the user exception.

这似乎暗示它会正常工作。

关于error-handling - SQL Try-Catch block 可以处理抛出的 CLR 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/122739/

相关文章:

python - 实现顺序 try-excepts 的 pythonic 方法是什么?

python - 如何正确处理单个元素上的迭代导致引发错误的情况?

.net分层设计: return error code to forms indicating which controls have an error

vba - 预期错误只能是 440/自动化错误?

java - Java和.Net在JIT上有什么区别

.net - Haskell 用于 .net 平台?

javascript - 在 Javascript 中使用 try-catch-finally block 捕获 JSON 解析异常不起作用

c++ - 如何从 Windows 7 的崩溃错误中获取更多信息?

android - OpenGl Es纹理颜色不正确

c# - C# 未初始化的变量危险吗?