首页 > 代码库 > 接口服务错误管理(将错误堆栈返回给请求)的实现
接口服务错误管理(将错误堆栈返回给请求)的实现
在提供服务的时候,为了方便排查问题,很多时候我们需要把错误信息放在返回信息中返回给请求。
闲话不多说,分享下我的一个错误信息管理类ZSGErrorManage:
错误code:
public static enum ERRORCODE{ ERROR_OK, ERROR_OTHER, ERROR_PARAM_ILLEGALITY, ERROR_UNKNOWN; }
获取错误message:
public static String getMsgThroughErrorCode(ERRORCODE errorCode, StackTraceElement[] errorStack){ if(errorStack != null){ StringBuffer sBuffer = new StringBuffer(); for(StackTraceElement stackContent : errorStack){ sBuffer.append(stackContent.toString()); } return sBuffer.toString(); } else { switch (errorCode) { case ERROR_OK: return "ERROR_OK"; case ERROR_OTHER: return "ERROR_OTHER"; case ERROR_PARAM_ILLEGALITY: return "ERROR_PARAM_ILLEGALITY"; default: return "ERROR_UNKNOWN"; } } }错误code就是一个枚举类型,没有什么可说的。
获取错误message是通过传入的错误code以及错误stack信息来返回文字式的错误信息。
可以看到,如果stack不为空,那么错误message就是stack的内容;
反之,如果stack为空,那么根据相应的错误code返回具有标志性的错误message
外部调用举例:
protected final ERRORCODE ERROR_OTHER = ZSGErrorManage.ERRORCODE.ERROR_OTHER;
HeroBaseDto result = new HeroBaseDto(); try { HeroInfoService service = (HeroInfoService)getBean("heroInfoService"); result = service.getHeroBase(); } catch (Exception e) { e.printStackTrace(); result.setErrorCode(ERROR_OTHER); result.setErrorMsg(ZSGErrorManage.getMsgThroughErrorCode(ERROR_OTHER, e.getStackTrace())); }
注:
e.getStackTrace() 获取错误stack
e.printStackTrace() 在控制台打印错误stack
希望以上内容会对大家有所帮助,谢谢。
接口服务错误管理(将错误堆栈返回给请求)的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。