小编wah*_*aft的帖子

在Silverlight中捕获WCF异常的最佳方法是什么?

我有一个使用WCF服务的Silverlight 2应用程序.因此,它对所有对服务方法的调用使用异步回调.如果在其中一个调用之前或期间服务未运行,或崩溃,或网络出现故障等,则会产生异常,如您所料.问题是,我不知道如何捕获这个异常.

  • 因为它是一个异步调用,所以我不能用try/catch块包装我的begin调用,并让它获取一个异常,该异常是在程序从该点开始移动后发生的.

  • 因为服务代理是自动生成的,所以我不能在每个调用EndInvoke的生成函数上放置一个try/catch块(异常实际显示的位置).这些生成的函数也被调用堆栈中的外部代码包围,因此堆栈中没有其他地方可以放置try/catch.

  • 我不能把try/catch放在我的回调函数中,因为异常发生在它们被调用之前.

  • 我的App.xaml.cs中有一个Application_UnhandledException函数,它捕获所有未处理的异常.我可以使用它,但这似乎是一种混乱的方式.我宁愿为真正意想不到的错误(也就是错误)保留这个函数,而不是在这个函数中以特定的方式处理我想要处理的每个环境中的代码.

我错过了明显的解决方案吗?还是我坚持使用Application_UnhandledException?

[编辑]
如下所述,Error属性正是我想要的.抛弃循环的原因是异常被抛出并且似乎未被捕获,但执行能够继续.它触发Application_UnhandledException事件并导致VS2008中断执行,但继续在调试器中允许继续执行.这不是一个真正的问题,它看起来很奇怪.

silverlight wcf exception

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

exception ×1

silverlight ×1

wcf ×1