千家信息网

WCF的异常处理是什么

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容主要讲解"WCF的异常处理是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"WCF的异常处理是什么"吧!介绍WCF(Windows Commun
千家信息网最后更新 2024年12月13日WCF的异常处理是什么

本篇内容主要讲解"WCF的异常处理是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"WCF的异常处理是什么"吧!

介绍

WCF(Windows Communication Foundation) -异常处理:一般Exception的处理,FaultException和FaultException的抛出和处理,使用IErrorHandler处理异常。

下面介绍第三种异常:FaultException的抛出和处理

一、强类型化一个SOP错误类,传递需要用[DataContract]

/// /// 错误信息实体类(用于错误契约FaultContract)/// [DataContract]public class FaultMessage{    ///     /// 错误信息    ///     [DataMember]    public string Message { get; set; }    ///     /// 错误代码    ///     [DataMember]    public int ErrorCode { get; set; }}

二、在操作协定中用[FaultContract]错误协定指定错误类型

[ServiceContract]public interface IHello{    [OperationContract]    [FaultContract(typeof(FaultMessage))]    void HelloFaultExceptionGeneric();}

三、在实现代码中,定义一个方法,可以抛出一个FaultException的异常

/// /// Hello类/// public class Hello : IHello{    ///     /// 抛出FaultException异常    ///     public void HelloFaultExceptionGeneric()    {        throw new FaultException(new FaultMessage { Message = "抛出FaultException异常", ErrorCode = -1 }, "为了测试FaultException用的");    }}

四、在客户端中,可以捕获FaultException的异常。FaultMessage用Detail属性访问。

protected void btnHelloFaultExceptionGeneric_Click(object sender, EventArgs e){    ExceptionService.HelloClient proxy = new ExceptionService.HelloClient();    try    {        proxy.HelloFaultExceptionGeneric();    }    catch (System.ServiceModel.FaultException ex)    {        lblMsg.Text = string.Format("错误代码:{0};错误信息:{1};错误原因:{2}",            ex.Detail.ErrorCode.ToString(),            ex.Detail.Message,            ex.Reason.ToString());    }    finally    {        proxy.Close();    }}

到此,相信大家对"WCF的异常处理是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0