2011-06-23 52 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; 

在響應中,如果調用成功與否,您可以提供用戶信息。我不會創建錯誤類,因爲它不是錯誤,而是驗證錯誤。總是使用錯誤來阻止他們與用戶溝通。否則,代碼會讓其他人感到困惑。