C# 如何从CompletedEventArgs获取抛出异常的类型?

C# 如何从CompletedEventArgs获取抛出异常的类型?,c#,windows-phone-8,C#,Windows Phone 8,我使用C和Visual Studio 2012开发WP8应用程序。我向我的项目添加了服务引用添加服务引用。所以我能够使用webservice函数 client = new YChatWebService.WebServiceControllerPortTypeClient(); client.getDataCompleted += client_getDataCompleted; client.InnerChannel.OperationTimeout = new TimeSpan(0, 0,

我使用C和Visual Studio 2012开发WP8应用程序。我向我的项目添加了服务引用添加服务引用。所以我能够使用webservice函数

client = new YChatWebService.WebServiceControllerPortTypeClient();

client.getDataCompleted += client_getDataCompleted;
client.InnerChannel.OperationTimeout = new TimeSpan(0, 0, 0, 0, 500);
client.getDataAsync(); 

void client_getDataCompleted(object sender, getDataCompletedEventArgs e)
{
    // e.Error.Message

}
我为getData设置了500毫秒的超时限制;如果超过了时间限制,则会出现以下错误:

发送到的HTTP请求'http://example.com/webService/index?ws=1”“是的 超过了分配的超时时间。分配给此操作的时间可能会缩短 已经是较长超时的一部分

这很好:但是,我想知道抛出了什么样的异常。类似于包含字符串TimeoutException的字符串变量的东西会更好。我怎样才能做到这一点呢?

你可以用

if( e.Error is TimeoutException )
要查看异常是否属于TimeoutException类型,可以使用

if( e.Error is TimeoutException )

要查看异常是否属于TimeoutException类型,这不是来自服务器的http响应包含错误描述,而不是.net异常吗

e.Error类是否具有除“Message”之外的任何其他属性?如果服务器也是.net,则您可能能够匹配异常类型,但如果不是.net,则它们将不对应


如果返回了一个错误代码,我只会使用它,或者只搜索文本“超出了分配的超时”,以确认这是一个超时异常。

这不就是服务器的http响应包含错误描述,而不是.net异常吗

e.Error类是否具有除“Message”之外的任何其他属性?如果服务器也是.net,则您可能能够匹配异常类型,但如果不是.net,则它们将不对应


如果返回了一个错误代码,我只会使用它,或者只搜索文本“超出了分配的超时”,以确认这是一个超时异常。

如果e.error是TimeoutException,会不会?我不确定e类错误是什么,有任何文档吗?谢谢@ZombieSpy。e、 Error is TimeoutException返回true。e.Error.InnerException或e.Error.BaseException是什么?@MPeli我不知道这里是怎么做的,在评论中回答了一个问题,还可以设置为解决吗?所以我做了一个答案=如果e.Error是TimeoutException工作的话会吗?我不确定e类错误是什么,有任何文档吗?谢谢@ZombieSpy。e、 Error is TimeoutException返回true。e.Error.InnerException或e.Error.BaseException是什么?@MPeli我不知道这里是怎么做的,在评论中回答了一个问题,还可以设置为解决吗?所以我做了一个回答=