2011-06-23 10 views
1

私は、サービスを作成して、私は「#45#Not valid login or password.どのようにクラスエラーを作成しますか?

#がクラスMyErrors(ない例外)

私のWebメソッドが返されたり、データやエラー、例えば、レスポンスを作成する必要があります - エラーが 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; 

応答では、呼び出しが成功したかどうかをユーザーに知らせることができます。エラーではなく、検証エラーであるため、エラークラスは作成しません。ユーザーと通信しないようにするには、常にエラーを使用します。さもなければ、コードは他人に混乱させるでしょう。

関連する問題