在Spring基础上实现自己的异常处理框架 - 编程入门网
nition(Class<?> expClazz) {
90 if (containsException(expClazz)) {
91 return exceptionMap.get(expClazz);
92 } else if (BaseAppRuntimeException.class.isAssignableFrom(expClazz.getSuperclass())) {
93 return getExceptionDefinition(expClazz.getSuperclass());
94 } else {
95 return null;
96 }
97 }
98
99 public ExceptionDefinition getRealExceptionDefinition(Class<?> expClazz) {
100 return exceptionMap.get(expClazz);
101 }
102
103 public List<ExceptionHandler> getExceptionHandlers(Class<?> expClazz){
104 ExceptionDefinition definition = getExceptionDefinition(expClazz);
105 if (null != definition) {
106 Set<String> handlerNames = definition.getHandlerNames();
107 List<ExceptionHandler> handlerList = new ArrayList<ExceptionHandler>(handlerNames.size());
108 for (String handlerName : handlerNames) {
109 ExceptionHandler handler = handlers.get(handlerName);
110 handlerList.add(handler);
111 }
112 List<ExceptionHandler> resultHandlerList = new ArrayList<ExceptionHandler>(handlerList);
113 return resultHandlerList;
114 } else {
115 return Collections.<ExceptionHandler> emptyList();
116 }
117 }
118
119 public String getErrorCode(Class<?> expClazz){
120 ExceptionDefinition definition = getExceptionDefinition(expClazz);
121 if (null != definition) {
122 return definition.getErrorCode();
123 } else {
124 return "";
125 }
126 }
127
128
129}
130
在Spring基础上实现自己的异常处理框架(4)时间:2011-01-02ExceptionDefinition: Exception信息单元
ExceptionDefiniton定义了和某个exception相关的具体信息,根据exception的class name可以从exceptionContext中的exceptionMap得到指定的exception的相关信息,这些信息是在系统初始化时读取到exceptionContext中的。并且避免了exception handler的重复初始化。 可配置,受管式,方便使用 采取两种配置方式,exception的相关信息比如它的errorCode, exceptionHandlers可以配置在外部的xml文件中,也可以用annotation标注。对于exception的处理是有继承性质的,如果某个exception没有在exceptionContext中注册,就使用它的父 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |