2012-03-29 66 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