這里所說的錯誤處理主要是指服務(wù)代碼中拋出的異常,即開發(fā)人員主動拋出的錯誤當然,由于網(wǎng)絡(luò)問題或者配置不正確,會引發(fā)連接超時的錯誤,但這里老周要說的是,我們在實現(xiàn)服務(wù)邏輯時主動拋出的異常,尤其是對客戶端傳入的參數(shù)的驗證上面。
WCF的異常信息一般會通過 FaultException 類來包裝。理論和概念性的東西,大家可以去查資料,老周向來不喜歡談那些,下面咱們通過實例來了解一下 FaultException。
定義服務(wù)協(xié)定。
[ServiceContract(Namespace = "demo-app")] public interface IOrder { [OperationContract] bool NewOrder(DateTime date, decimal price, long q); }
假設(shè)這個服務(wù)的功能是用來下單的,當然不是真的實現(xiàn)下單功能,因為那樣太復(fù)雜,也不是本文的重點,這里老周安排了三個參數(shù),分別表示下單日期,商品單價,以及商品數(shù)量。
下面,咱們來實現(xiàn)一下這個協(xié)定。
internal class OrderSvr : IOrder { public