pe框架简介9--peException

问题:下面_exceptionMessageCode、_exceptionMessage获取的是什么值?

"head":{

    "IBSReturnCode":""

,"IBSReturnMsg":""

}

答案:_exceptionMessageCode获取的PeException的MessageKey,即ValidationException的构造函数的第一个参数:错误码/错误码+错误信息。

_exceptionMessage获取规则比较麻烦:

1、如果ValidationException中setDefaultMessage(并且DefaultMessage!=MessageKey),则取得是DefaultMessage。

2、如果没有 setDefaultMessage(),那么取ValidationException构造函数第一个参数里MessageKey后面的message值;如果message为空,则提示undefined message,exception code:第一个参数

3、DefaultMessage=MessageKey(默认值=第一个参数-----一般不这么用),则提示undefined message,exception code:第一个参数

具体例子参加最后






ViewExceptionHandler
ViewExceptionHandler
ViewExceptionHandler


ViewExceptionHandler:没有DefaultMessage   ,走该分支
如果DefaultMessage不为空,_exceptionMessage=DefaultMessage   


DefaultMessage  获取




例子

1、如果ValidationException中setDefaultMessage(并且DefaultMessage!=MessageKey),则取得是DefaultMessage。

ValidationException e=new ValidationException((errorKeyPrefix+returnCode).trim(),new Object[]{errMessage});

e.setDefaultMessage(errMessage);

throw e;

默认正确写法

ValidationException e=new ValidationException("",new Object[]{errMessage});

e.setDefaultMessage(errMessage);

throw e; 

错误码置为空,setDefaultMessage(),还取DefaultMessage

2、如果没有 setDefaultMessage(),那么取ValidationException构造函数第一个参数里MessageKey后面的message值;如果message为空,则提示undefined message,exception code:第一个参数

String defaultMessage=applicationContext.getMessage("host.default",null,"",null);

throw new ValidationException("host.default",new Object[]{errorKeyPrefix+returnCode+","+defaultMessage,errMessage});

没有setDefaultMessage(),取ValidationException构造函数第一个参数里MessageKey后面的message值;

throw new ValidationException((errorKeyPrefix+returnCode).trim(),new Object[]{errorKeyPrefix+returnCode+message,errMessage});//转义的message

没有setDefaultMessage(),取ValidationException构造函数第一个参数里MessageKey后面的message值;  

ValidationException e=new ValidationException((errorKeyPrefix+returnCode).trim(),new Object[]{errMessage});

throw e;

如果message为空,则提示undefined message,exception code:第一个参数

3、DefaultMessage=MessageKey(默认值=第一个参数-----一般不这么用),则提示undefined message,exception code:第一个参数


DefaultMessage=MessageKey(默认值=第一个参数-----一般不这么用),则提示undefined message,exception code:第一个参数






你可能感兴趣的:(pe框架简介9--peException)