【发布时间】:2011-03-31 02:45:51
【问题描述】:
有没有办法捕获项目中的所有 SQL 异常?我有几个 gridviews 和多个 sqldatasources,当用户输入错误或在错误的列中时,大多数错误都会发生。那么如何阻止 /Project 页面中的 Server Error 出现呢?
【问题讨论】:
标签: sql vb.net exception exception-handling
有没有办法捕获项目中的所有 SQL 异常?我有几个 gridviews 和多个 sqldatasources,当用户输入错误或在错误的列中时,大多数错误都会发生。那么如何阻止 /Project 页面中的 Server Error 出现呢?
【问题讨论】:
标签: sql vb.net exception exception-handling
简单的答案是,在将输入发送到 SQL Server 之前验证输入。这样就不会抛出任何异常了。
如果您希望集中处理所有错误(这不是解决此特定问题的理想解决方案),您可以在 web.config 文件中设置自定义错误处理。
【讨论】:
我建议在 Web 应用程序的 Global.asax 内的 Application_Error 事件中捕获错误。
【讨论】:
捕获所有异常的最简单方法是在 global.asax 中的 Application_error 事件处理程序中进行,并利用 web.config 自定义错误处理来显示友好的错误页面。 mikeware 已经提到了这些。
如果您想将所有验证逻辑放在一个地方/将它们与您的 aspx 页面分开,您可以通过使您的网站多层化并将您的自定义验证逻辑放在中间层来实现。通过使用此方法,无论哪个页面正在访问您的数据,您的数据都将在该层中得到验证。您还可以使用 objectdatasource 进行选择/插入/更新/删除操作。显然它需要一些工作,但它可以清楚地将您的数据和您的 UI 分开。
【讨论】: