0

我有一个 web 用户控件,其中我的 aspx 页面包含。在测试期间,我发现抛出了一个异常。(现有的一般规则是,当发生异常时,用户将被重定向到详细说明错误的异常页面)

一旦在我的用户控件中处理了异常,我想将它扔到可以安全地进行解析和重定向的页面。我在其他情况下通过使用 Global Asax、Application_Error 来处理重定向等来执行此操作。但是当我从用户控制中抛出异常时发生的所有事情都是我得到了一个带有异常消息的可怕的 javascript 类型对话框。

为了解决这个问题,我声明了一个事件,然后从用户控件引发,并将异常作为参数。我可以成功地将异常解析为所需格式并将用户重定向到异常页面。

我的问题是这些

  1. 为什么从用户控件中抛出异常只会导致 javascript 对话框而不是 Global.asax 错误处理启动。

  2. 有没有办法强制控件的消费者处理我的自定义错误事件?类似于“MustImplement”-----“MustHandle”之类的事情?

4

2 回答 2

1
  1. 为什么从用户控件中抛出异常只会导致 javascript 对话框而不是 Global.asax 错误处理启动。

因为在异步回发期间出现页面错误,这里有一篇关于ASP.Net Ajax 应用程序中的错误处理的好文章。

2.有没有办法强制控件的消费者处理我的自定义错误事件?类似于“MustImplement”-----“MustHandle”之类的事情?

解释了如何处理 Global.asax 中的异步回发错误。

于 2009-02-05T15:24:00.990 回答
0

我不精通 ASP.NET,但我会试一试:

  1. 为什么从用户控件中抛出异常只会导致 javascript 对话框而不是 Global.asax 错误处理启动。

错误在客户端引发,您的错误处理发生在服务器端。除非您实现一个在错误时触发的 AJAX-y 回调,否则服务器不会收到任何客户端错误的通知。这似乎不是 ASP.NET 中的默认行为。您可能会查看 Microsoft 的 AJAX 库,肯定他们已经为此类事情提供了机制。

  1. 有没有办法强制控件的消费者处理我的自定义错误事件?类似于“MustImplement”-----“MustHandle”之类的事情?

简单的回答:没有。

于 2009-02-04T15:09:55.623 回答