2011-06-23 46 views
1

我创建的服务,我需要创建类MyErrors(没有例外)如何创建类错误?

我的Web方法返回或数据或错误,例如响应“#45#Not valid login or password.

# - 是说发生了错误 45标志 - 代码错误。

例如使用错误类:

int returnValue = ExistLogin(login); 
if (returnValue==0) { 
    return Registaration(login, name, password); 
} else if(returnValue==1) { 
    return Errors.LOGIN_ALREADY_EXISTS.ToString(); 
} 
else return Errors.ConvertToString(returnValue); 

Errors.LOGIN_ALREADY_EXISTS - 回数<-1

Errors.LOGIN_ALREADY_EXISTS - 返回字符串#-1#Error bla bla bla

如何最好地创建一个类?

回答

3

您可以使用Java enum此:

public enum Errors { 
    LOGIN_ALREADY_EXISTS(-1, "The username is already in use."), 
    UNKNOWN(0, "Unknown"); 

    private final int errorCode; 
    private final String message; 

    private Errors(int errorCode, String message) { 
     this.errorCode = errorCode; 
     this.message = message; 
    } 

    public int getErrorCode() { 
     return errorCode; 
    } 

    public String getMessage() { 
     return message; 
    } 

    @Override 
    public String toString() { 
     return "#" + errorCode + "#" + message; 
    } 
} 
0

对于使用return语句必须是同一类型。在你的情况下,这不是。我会测试用户是否存在,然后决定是否返回服务或注册中的错误代码或消息。并从你的测试变量中创建一个布尔值。

ResponseObject o;//wether SOAP, RPC-XML, JSON, XML 

if(ExistLogin(login)/*must return boolean*/) 
{ 
    o = createExistAnswerForService(login); 
} 
else 
{ 
    o = createUserAddedAnswerForService(login, name, password); 
} 
return o; 

在响应中,如果调用成功与否,您可以提供用户信息。我不会创建错误类,因为它不是错误,而是验证错误。总是使用错误来阻止他们与用户沟通。否则,代码会让其他人感到困惑。