C#在服务器回调方法中抛出异常

时间:2012-07-31 01:59:45

标签: c# exception exception-handling try-catch

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

        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);

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

1 个答案:

答案 0 :(得分:1)

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

  1. 可以在Application_Error中的应用程序级别捕获错误 Global.asax中的事件 http://msdn.microsoft.com/en-us/library/24395wz3.aspx
  2. 可以通过aspx页面中的Page_Error事件在页面级别捕获错误 http://msdn.microsoft.com/en-us/library/24395wz3.aspx
  3. 在这些事件中,我们可以通过代码获取最后发生的异常

    Exception exc = Server.GetLastError();