2012-03-29 50 views
1

我需要編寫錯誤是:如何顯示錯誤代碼示例wcf服務?

錯誤代碼:

101: Syntax Error 
102: id already exists 
103: User already exists 
104: Unsupported id 
105: Server Error, try again or contact administrator 

請告訴我,其餘樣品WCF服務上... 我新寫的WCF服務。

回答

1

IServce1.cs

[ServiceConstract] 
public interface IService1 
{ 
    [OperationContract] 
    string GetErrorCode(int er); 
} 

Service1.svc.cs

public class Service1:IService1 
{ 
    public string GetErrorCode(int er) 
    { 
    string description; 
    switch(er) 
    { 
     case 101: description="Syntax Error"; break; 
     case 102: description="ID already exists"; break; 
     case 103: description="User already exists"; break; 
     case 104: description="Unsupported ID"; break; 
     case 105: description="Server Error, try again or contact administrator"; break; 
     default: //Write whatever you want to throw to user. 
     } 
    return description; 
    } 
} 

使用這個方法與另一種方法您的客戶端應用程序,無論你怙錯誤將會發生你在一個try/catch塊中創建你自己的自定義異常,並將每個代碼與它關聯起來,或者你也可以將它們存儲在數據庫表中,然後使用一個ID可以從那裏拋出相應的錯誤代碼。

+0

如何檢查所有這些代碼,如果都是真的需要顯示result.any簡單樣品的自定義錯誤處理....... – user1237131 2012-03-29 11:37:19

+0

考慮的情況下,通過而不是中斷。此外,如果您正在爲這些代碼編寫自定義 - {拋出新的異常},那麼您將只爲每個異常分配一個代碼。因此,萬一拋出所有異常,它將每次都拋出所有'description'它遇到了異常。 – Milee 2012-03-29 11:38:16

+0

另外,爲了使它看起來更好,考慮在一個單獨的類中編寫所有這些異常並使用該類中的開關盒,以便它不會混淆使用try/catch的實際代碼:) – Milee 2012-03-29 11:45:41

1

構建一個類(稱之爲YourErrorClass爲簡單起見,這裏)與整數屬性(ID)和String屬性(說明)

裝飾與DataContract

然後在你的Web服務本身,拋出的FaultException與適當的價值發佈。

當你這樣做時,確保你捕獲它們的位置,你相應地向用戶顯示值。

+1

並記住用[FaultContractAttribute] – GazTheDestroyer 2012-03-29 09:15:05

+0

裝飾服務任何樣品,請讓我知道。 – user1237131 2012-03-29 09:19:40

+0

按照這個 - 它的理想:http://msdn.microsoft.com/en-us/library/ms752208.aspx – Chris 2012-03-29 09:25:17