在Spring基础上实现自己的异常处理框架 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-21
w HashMap<Class<?>, ExceptionDefinition>(); 25 } 26 27 public boolean containsException(Class<?> expClazz) { 28 return (exceptionMap.containsKey(expClazz)); 29 } 30 31 public void addExceptionHander(Class<?> expClazz, Class<? extends ExceptionHandler> handlerClazz) { 32 try { 33 ExceptionDefinition definition = getRealExceptionDefinition(expClazz); 34 if (null == definition) { 35 throw new IllegalArgumentException(expClazz.getName() + "not in the context, please configure or add it to the context first!!"); 36 } 37 ExceptionHandler handler = handlers.get(handlerClazz.getName()); 38 if (null == handler) { 39 handler = handlerClazz.newInstance(); 40 handlers.put(handlerClazz.getName(), handler); 41 } 42 43 definition.getHandlerNames().add(handlerClazz.getName()); 44 } catch (Exception ex) { 45 throw new ConfigException("Add exception handler to context failure!", ex); 46 } 47 } 48 49 public void addExceptionHandler(Class<?> expClazz, String errorCode, Class<? extends ExceptionHandler> handlerClazz) { 50 Assert.hasLength(errorCode, expClazz + " errorCode must not be null or empty string!"); 51 ExceptionDefinition definition = getRealExceptionDefinition(expClazz); 52 if(null == definition) { 53 definition = new ExceptionDefinition(errorCode); 54 exceptionMap.put(expClazz, definition); 55 } 56 addExceptionHander(expClazz, handlerClazz); 57 } 58 59 60 61 public void addExceptionHandlers(Class<?> expClazz, Class<? extends ExceptionHandler> handlerClazzes) { 62 for(Class<? extends ExceptionHandler> handlerClazz : handlerClazzes) { 63 addExceptionHander(expClazz, handlerClazz); 64 } 65 } 66 67 public void removeExceptionHandler(Class<?> expClazz, Class<? extends ExceptionHandler> handlerClazz) { 68 Assert.isTrue(containsException(expClazz)); 69 String handlerName = handlerClazz.getName(); 70 getExceptionDefinition(expClazz).getHandlerNames().remove(handlerName); 71 Collection<ExceptionDefinition> definitons = exceptionMap.values(); 72 boolean isClearHandler = true; 73 for (ExceptionDefinition expDefinition : definitons) { 74 if (expDefinition.getHandlerNames().contains(handlerName)) { 75 isClearHandler = false; 76 break; 77 } 78 } 79 80 if (isClearHandler) { 81 handlers.remove(handlers.get(handlerName)); 82 } 83 } 84 85 public void setExceptionDefinition(Class<?> expClazz, ExceptionDefinition definition) { 86 exceptionMap.put(expClazz, definition); 87 } 88 89 public ExceptionDefinition getExceptionDefi |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: ant简介 - 编程入门网下一篇: AOP下的权限控制实现 - 编程入门网
关于在Spring基础上实现自己的异常处理框架 - 编程入门网的所有评论