java怎么捕获异常_Java的异常捕获该怎么写?

我们在项目中的处理,可以定义一个ExceptionResolver,然后在这个里面将e.getMessage信息拿出来就可以了,这个里面可以判断是ajax请求还是普通的请求,可以返回到不同的地方,欢迎讨论。public class MappingExceptionResolver extends SimpleMappingExceptionResolver {

private String getErrorMsg(Exception e){

String errorMsg = "";

Throwable cause = e.getCause();

if(cause != null && StringUtils.isNotBlank(cause.getMessage())){

errorMsg = e.getCause().getMessage();

} else if(StringUtils.isNotBlank(e.getMessage())){

errorMsg = e.getMessage();

}

return errorMsg;

}

@Override

protected ModelAndView doResolveException(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception ex) {

String accept = request.getHeader("accept");

if(accept.indexOf("application/json")>-1){

Map errors = new HashMap();

errors.put("errorCode", "-1");

errors.put("errorMsg", getErrorMsg(ex));

request.setAttribute("errorJson", JSONObject.fromObject(errors).toString());

return super.getModelAndView("errors/ajax/500", ex, request);

}

if (ex instanceof TnAccessDeniedException) {

response.setStatus(HttpStatus.SC_FORBIDDEN);

}

return super.doResolveException(request, response, handler, ex);

}

protected ModelAndView getModelAndView(String viewName, Exception ex) {

if(ex instanceof TnBaseException){

LoggerHelper.err(MappingExceptionResolver.class,ex.getMessage());

}else{

LoggerHelper.err(MappingExceptionResolver.class,"", ex);

}

return super.getModelAndView(viewName, ex);

}

}

2012年7月20日 18:57

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值