【问题标题】:Events and Event handling in VBVB中的事件和事件处理
【发布时间】:2009-02-04 15:06:24
【问题描述】:

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

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

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

我的问题是这些

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

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

【问题讨论】:

  • 您使用的是 ASP.NET Ajax,对吧?还是其他一些 3d pary AJAX 控件集?
  • 是的,将 ASP.NET 与 Ajax Control Toolkit 结合使用

标签: asp.net vb.net event-handling


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

因为异步回发时出现页面错误,这里有一篇关于Error Handling in ASP.Net Ajax Applications的好文章。

2.有没有办法强制控件的消费者处理我的自定义错误 事件?类似于“必须实施” -----一种“必须处理”的事情?

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

【讨论】:

    【解决方案2】:

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

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

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

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

    简单的回答:没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-12
      • 2010-09-12
      • 2018-12-20
      • 2011-06-29
      • 1970-01-01
      • 2016-05-28
      • 2022-01-15
      相关资源
      最近更新 更多