0

考虑在 sql server 2008 中使用 c# 语言和数据库的 asp.net 3.5 应用程序中有 n 层架构。

假设我们调用存储过程存在于数据库中,在我们的数据访问层中。但是在执行存储过程时,它会出现异常。(这可能有助于在存储过程中抛出)那么应用程序如何确切地知道异常是什么?

ADO.NET 是否有能力理解和表示 sql sql server 抛出的异常。我知道 CLR 的异常处理模块提供了 SQLException 命名空间。但根据我的经验,这个模块不能代表在 sql server 中遇到的验证异常。有人可以纠正我并正确指导处理来自 dot net 应用程序的 sql server 异常吗?以及我们如何处理它们?我们是否需要始终在数据访问层等待执行/到达 catch 块?

可能是这个问题重复了,但我想分享我的经验。

4

1 回答 1

1

您应该在输入的所有数据到达数据库之前对其进行验证和/或清理,因此除非 DB 不存在或 SP 中存在错误,否则您不应该真正得到 SQL 异常。

根据我的经验,您会捕获 SQL 异常记录它,将其包装在 ApplicationException 中并将用户友好的错误返回给 UI。

于 2011-05-31T12:59:11.710 回答