我在 SQL Server 中有一个存储过程,每当满足条件时就会引发错误。为了捕获此错误并将其显示给用户,我使用
try
{
//code
}
catch (Exception e)
{
return BadRequest(e.Message);
}
这涵盖了大多数情况,但另一方面,这个过程有一些问题print
也被这个捕获的消息Exception
。有没有办法捕获仅从RAISERROR
并忽略这个print
来自 SQL Server 的消息?
命令执行期间生成的所有信息和错误消息都会被缓冲,并且在命令执行期间可用异常被抓住了。 Message 属性包括所有信息消息的文本(打印语句和严重性小于 11 的错误)以及导致异常的警告/错误。
要忽略信息消息,请使用 SqlException Errors 集合并仅处理严重性(SqlError.Class 属性)为 11 或更高的消息:
catch (SqlException e)
{
var sb = new StringBuilder();
foreach(var error in e.Errors)
{
if(error.Class > 10) sb.AppendLine(error.message);
}
return BadRequest(sb.ToString());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)