這里所說(shuō)的錯(cuò)誤處理主要是指服務(wù)代碼中拋出的異常,即開(kāi)發(fā)人員主動(dòng)拋出的錯(cuò)誤當(dāng)然,由于網(wǎng)絡(luò)問(wèn)題或者配置不正確,會(huì)引發(fā)連接超時(shí)的錯(cuò)誤,但這里老周要說(shuō)的是,我們?cè)趯?shí)現(xiàn)服務(wù)邏輯時(shí)主動(dòng)拋出的異常,尤其是對(duì)客戶(hù)端傳入的參數(shù)的驗(yàn)證上面。

WCF的異常信息一般會(huì)通過(guò) FaultException 類(lèi)來(lái)包裝。理論和概念性的東西,大家可以去查資料,老周向來(lái)不喜歡談那些,下面咱們通過(guò)實(shí)例來(lái)了解一下 FaultException。

定義服務(wù)協(xié)定。

    [ServiceContract(Namespace = "demo-app")]    public interface IOrder
    {
        [OperationContract]        bool NewOrder(DateTime date, decimal price, long q);
    }

假設(shè)這個(gè)服務(wù)的功能是用來(lái)下單的,當(dāng)然不是真的實(shí)現(xiàn)下單功能,因?yàn)槟菢犹珡?fù)雜,也不是本文的重點(diǎn),這里老周安排了三個(gè)參數(shù),分別表示下單日期,商品單價(jià),以及商品數(shù)量。

下面,咱們來(lái)實(shí)現(xiàn)一下這個(gè)協(xié)定。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

    internal class OrderSvr : IOrder
    {        public