从Silverlight客户端中的WCF获取更多错误详细信息

时间:2010-08-05 21:30:01

标签: c# wcf error-handling

在Silverlight客户端中,我收到错误但总是看起来像:

  

操作期间发生异常,导致结果无效。   检查InnerException是否有异常   的信息。

     

在   System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()   在   SecretaryAppNav.ClientService.GetChildAndOpiekunByFirstnameLastnameCompletedEventArgs.get_Result()   在   SecretaryAppNav.Views.FindChild.Client_GetChildAndOpiekunByFirstnameLastnameCompleted(对象   发件人,   GetChildAndOpiekunByFirstnameLastnameCompletedEventArgs   吃   SecretaryAppNav.ClientService.Service1Client.OnGetChildAndOpiekunByFirstnameLastnameCompleted(对象   状态)

在客户端文件中,我总是使用try catch来捕获erorrs,但它永远不会调用,:

        void Client_GetChildAndOpiekunByFirstnameLastnameCompleted(object sender, GetChildAndOpiekunByFirstnameLastnameCompletedEventArgs e)
    {
        try
        {
            this.dataForm1.ItemsSource = e.Result.Collection;
        }
        catch (FaultException ex)
        {
            System.Windows.Browser.HtmlPage.Window.Alert(ex.Reason.ToString() +  ex.Code.ToString() );
            throw new FaultException(ex.Reason, ex.Code, "Klikanie");
        }
    }

我应该将此catch放在我的服务文件中以捕获SOAP错误吗?没有更多的信息我总是在我的代码中寻找错误,就像在黑暗中......:/

1 个答案:

答案 0 :(得分:1)

如果您正在调试应用程序,并且只想捕获每个异常,请执行以下操作:

catch (Exception ex)
{
    System.Windows.Browser.HtmlPage.Window.Alert(ex.Reason.ToString())
}

您可能希望在此之后重新抛出异常,或者检查它是什么类型的异常,但这可以是一种在调试模式下捕获异常的有用方法。

您还可以在捕获常规异常的代码行上设置一个断点。这将允许您在抛出异常时“观察”异常,然后查看其嵌套的内部异常。