VB中的事件和事件处理

时间:2009-02-04 15:06:25

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

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

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

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

我的问题是这些

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

  2. 有没有 强迫消费者的方式 控制来处理我的自定义错误 事件? Simialr对“MustImplement”-----一种“MustHandle”的绯闻?

2 个答案:

答案 0 :(得分:1)

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

由于异步回发期间存在页面错误,因此这是一篇关于Error Handling in ASP.Net Ajax Applications的好文章。

  

2.有没有办法强制控件的使用者处理我的自定义错误   事件? Simialr到“必须实现”   -----一种“MustHandle”的绯闻?

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

答案 1 :(得分:0)

我不熟悉ASP.NET,但我会试一试:

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

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

  
      
  1. 有没有办法强制控件的使用者处理我的自定义错误事件? Simialr对“MustImplement”-----一种“MustHandle”的绯闻?
  2.   

简单回答:不。