在具有枚举对象的异常中传递错误代码

时间:2015-11-06 14:09:03

标签: java enums

我是java和c ++背景的新手。

我正在尝试以下方法:

public myErrors {

  enum errorTypeOne {

      PARAM(0, "something"),
      PARAM1(1, "SOMETHING");

      errorTypeOne(int errval, String str)
      {
          this.value = errVal;
          this.errorStr = str;
      }

      public int getValue()
      {
           return this.value;
      }
      public String getDesc()
      {
          return this.errorStr;
      }
      public errorTypeOne getErrorTypeOneFor(int x)
      {
              for(errorTypeOne eCode : values()) 
              {
                     if( eCode.value == x ) 
                       return eCode;
              }

             return null;
      }
}


       private int value;
       private String errorStr;

 }
}
到目前为止一切顺利。现在在我的代码中,我抛出一个异常,它封装了'errorTypeOne'的对象。

现在我的java类用户可以使用try catch block

访问它
try {
  // something that throws myException.

} 
catch ( MyException ex )
{
   if ( ex.errType  == myErrors.errorTypeOne.PARAM )
    {
      // do something..
      // print -> ex.errType.getDesc()
    }
   if ( ex.errType == myErrors.errorTypeOne.PARAM1 )
    {
        // do something...
        // print -> ex.errType.getDesc()
    }
}

问题:

1)我的问题是这个'if'条件是否有效检查?

2)引入getErrorTypeOneFor(int x)API

是正确的方法吗?

请告知,让我知道我在哪里被忽视了?

0 个答案:

没有答案