C# 如何从CompletedEventArgs获取抛出异常的类型?
我使用C和Visual Studio 2012开发WP8应用程序。我向我的项目添加了服务引用添加服务引用。所以我能够使用webservice函数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,
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我不知道这里是怎么做的,在评论中回答了一个问题,还可以设置为解决吗?所以我做了一个回答=