在写代码的时候,经常遇到需要异常处理。
1.在catch里面捕获异常,然后比如:throw new connectException(“”); 括号里可以填写的信息,可以作为参数在外层捕捉这个异常的时候作为参数如下:
try{ .. catch (Exception e) { throw new ConnectException(ip); }
2. 捕捉上述异常:
catch (Exception e) { if(ex instanceof ConnectException){ returnStr=getErrorMsg( ex.getMessage()); }else{ returnStr="获取用户信息出错:"+ex.getMessage(); } }
这样就可以捕捉到自己想要的异常,并进行处理了。当然,这是单个模块的异常处理,如果是全局异常处理,在spring mvc里面,比如,需要根据捕捉的异常,最后显示什么界面,则:
/** * spring mvc异常捕获类 * */ @Component public class MyExceptionHandler implements HandlerExceptionResolver { private static final Logger logger = Logger .getLogger(MyExceptionHandler.class); public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { String exceptionMessage = ExceptionUtil.getExceptionMessage(ex); logger.error(exceptionMessage); Map model = new HashMap(); model.put("exceptionMessage", exceptionMessage); model.put("ex", ex); return new ModelAndView("common/error", model); } }
类似这样的写法,根据异常的类型,来决定要跳转的页面,sping 配置文件里面好像还要配置下。