WCF的異常處理
介紹
WCF(Windows Communication Foundation) -異常處理:一般Exception的處理,F(xiàn)aultException和FaultException<T>的拋出和處理,使用IErrorHandler處理異常。
下面介紹第三種異常:FaultException<T>的拋出和處理
一、強(qiáng)類(lèi)型化一個(gè)SOP錯(cuò)誤類(lèi),傳遞需要用[DataContract]
/// <summary>
/// 錯(cuò)誤信息實(shí)體類(lèi)(用于錯(cuò)誤契約FaultContract)
/// </summary>
[DataContract]
public class FaultMessage
{
/// <summary>
/// 錯(cuò)誤信息
/// </summary>
[DataMember]
public string Message { get; set; }
/// <summary>
/// 錯(cuò)誤代碼
/// </summary>
[DataMember]
public int ErrorCode { get; set; }
}二、在操作協(xié)定中用[FaultContract]錯(cuò)誤協(xié)定指定錯(cuò)誤類(lèi)型
[ServiceContract]
public interface IHello
{
[OperationContract]
[FaultContract(typeof(FaultMessage))]
void HelloFaultExceptionGeneric();
}三、在實(shí)現(xiàn)代碼中,定義一個(gè)方法,可以?huà)伋鲆粋€(gè)FaultException<FaultMessage>的異常
/// <summary>
/// Hello類(lèi)
/// </summary>
public class Hello : IHello
{
/// <summary>
/// 拋出FaultException<T>異常
/// </summary>
public void HelloFaultExceptionGeneric()
{
throw new FaultException<FaultMessage>(new FaultMessage { Message = "拋出FaultException<T>異常", ErrorCode = -1 }, "為了測(cè)試FaultException<T>用的");
}
}四、在客戶(hù)端中,可以捕獲FaultException<FaultMessage>的異常。FaultMessage用Detail屬性訪問(wèn)。
protected void btnHelloFaultExceptionGeneric_Click(object sender, EventArgs e)
{
ExceptionService.HelloClient proxy = new ExceptionService.HelloClient();
try
{
proxy.HelloFaultExceptionGeneric();
}
catch (System.ServiceModel.FaultException<ExceptionService.FaultMessage> ex)
{
lblMsg.Text = string.Format("錯(cuò)誤代碼:{0};錯(cuò)誤信息:{1};錯(cuò)誤原因:{2}",
ex.Detail.ErrorCode.ToString(),
ex.Detail.Message,
ex.Reason.ToString());
}
finally
{
proxy.Close();
}
}到此這篇關(guān)于WCF異常處理的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于C#的電視臺(tái)節(jié)目表接口調(diào)用代碼
這篇文章主要介紹了基于C#的電視臺(tái)節(jié)目表接口調(diào)用代碼的相關(guān)資料,需要的朋友可以參考下2016-06-06
C#使用三層架構(gòu)開(kāi)發(fā)Winform的詳細(xì)案例
這篇文章介紹了C#使用三層架構(gòu)開(kāi)發(fā)Winform的詳細(xì)案例,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
如何用C#實(shí)現(xiàn)SAGA分布式事務(wù)
大家好,本篇文章主要講的是如何用C#實(shí)現(xiàn)SAGA分布式事務(wù),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-01-01
c# Newtonsoft.Json 常用方法總結(jié)
這篇文章主要介紹了c# Newtonsoft.Json 常用方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02

