进阶得小白鼠 2017-08-23 18:20 采纳率: 0%
浏览 3117
已采纳

java自定义异常类 ,当程序走到这里的时候 ,页面的控制台报错信息是500

这个是异常类信息:
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) {
logger.info("进入全局异常处理器");
//ModelAndView modelAndView = new ModelAndView();
String result = "";
// 将请求参数Map,转成BasicOrderModel实体
Map reqParam = MapUtil.getParams(request.getParameterMap());
BasicOrderModel basicOrderModel = MapUtil.mapToBean(BasicOrderModel.class, reqParam);
basicOrderModel.setRequestInfo(request);
// 解析异常类型
if(e instanceof BusinessException){
BusinessException businessException = (BusinessException)e;
result = ReplyUtil.failureReply(businessException.getMsg(), basicOrderModel, reqParam);
}else{
if(ParamVerify.checkParamIsEmpty(e.getMessage())){
result = ReplyUtil.failureReply(ExceptionCode.E00001, basicOrderModel, reqParam);
}else{
result = ReplyUtil.failureReply(e.getMessage(), basicOrderModel, reqParam);
}
}
// 将内容写入response中
try {
response.setContentType("text/json; charset=UTF-8");
response.getWriter().println(result);
} catch (IOException e1) {
e1.printStackTrace();
response.setStatus(500);
logger.info("向HttpServletResponse写入异常信息失败:"+e1.fillInStackTrace());
}
return null;
//return modelAndView;
}
---------------
这里 如果 返回的是null 代码正常可运行,但是页面的控制台的status 却是500,如果返回的是 new 一个 ModelAndView 的话,页面正常 ,状态码为200 ,但是其中是什么逻辑 ,我不清楚,为什么返回null的时候 页面控制台会报错500呢?希望那个大神能给点提示 ,3Q

    接口开发,我们这边不做页面处理,所以所有信息返回的时候也不能给前端造成坑

展开全部

  • 写回答

4条回答 默认 最新

  • satan_smiles 2017-08-26 01:32
    关注

    500是服务器即你这个方法在处理请求,配置文件解析该返回值发生了错误,
    200是服务器正确处理了请求,前台可能解析错误
    你可以尝试更改返回值类型,改为void,modelAndView写在方法参数内,或者说你根本用不到modelAndView,剔除就行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?