我是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
是正确的方法吗?请告知,让我知道我在哪里被忽视了?