Error handling SQL Try Catch块能否处理抛出的CLR错误?

Error handling SQL Try Catch块能否处理抛出的CLR错误?,error-handling,clr,try-catch,Error Handling,Clr,Try Catch,我们正在使用SQL2005和try-catch功能来处理数据库中的所有错误处理。我们目前正在部署一个.NET CLR函数,以便在DB中进行一些WCF调用。此WCF过程在CLR中编写,然后部署到SQL。如果我在CLR代码中放入try-catch块,它会很好地捕获错误。但是,我似乎不能在SQL中将错误抛出到try-catch块。SQL似乎忽略了我抛出的内容,并捕获了它发现的错误。两者之间是否没有关系(即我不能从一个扔到另一个?) 如果我可以从CLR中抛出到SQL中的调用过程,是否需要任何特殊格式?我

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


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

下面是一篇博文,从较高的层次对其进行了介绍:

当SQL server执行CLR中实现的用户函数/过程/触发器(即托管代码)时,我们将在用户代码周围安装托管异常处理程序。因此,如果用户代码泄漏了一个异常,服务器将捕获该异常并抛出一个包装该用户异常的TSQL异常

这似乎意味着它只会起作用