0

我的程序中有一个方法是服务器回调,如下所示:

        private void DeserializerCallback(IAsyncResult aysncResult)
    {
        HttpWebRequest request = (HttpWebRequest)aysncResult.AsyncState;
        HttpWebResponse response;
        try
        {
            response = (HttpWebResponse)request.EndGetResponse(aysncResult);
        }
        catch(WebException e)
        {
            VenueMapException venueMapException = new MyException(MyException.ExceptionType.BadResponseException, e);
            throw venueMapException;
        }

        Stream responseStream = response.GetResponseStream();
        this.DeserializeStream(responseStream);

    }

在我执行此行后调用此方法:

this.MyHttpRequest.BeginGetResponse(new AsyncCallback(this.DeserializerCallback), this.MyHttpRequest);

在回调方法中,我抛出了一个自己定义的异常。现在我想尽可能远离这段代码来捕获这个异常,但是如果我没有在这个方法中捕获它,我不确定异常会去哪里。
有人可以提出一些建议吗?谢谢

4

1 回答 1

1

可以在页面级别或应用程序级别捕获错误

  1. 可以在 Global.asax http://msdn.microsoft.com/en-us/library/24395wz3.aspx中的 Application_Error 事件中的应用程序级别捕获错误
  2. aspx 页面中的 Page_Error 事件可以在页面级别捕获错误 http://msdn.microsoft.com/en-us/library/24395wz3.aspx

在这些事件中,我们可以通过代码获取最后发生的异常

Exception exc = Server.GetLastError();
于 2012-07-31T02:20:57.927 回答