返回null空指针异常捕获不到,直接报错没有logger提示

来源:2-6 统一异常处理(下)

慕粉2137351520

2018-10-09 20:05

postman返回这个格式,不是应该出现的-1,控制台也没有打印【系统异常】这几个字

{

    "timestamp": "2018-10-09T12:02:04.961+0000",

    "status": 500,

    "error": "Internal Server Error",

    "message": "No message available",

    "path": "/girls"

}


写回答 关注

3回答

  • 慕粉4135521
    2018-10-12 18:14:33
    已采纳

    下面的是我写的异常处理类

    有两点你需要注意看下

        1.@ExceptionHandler注解填的是Exception.class吗?

        2.else分支这里有没有作以处理,再者说了,这里总返回的是Result对象,你前台怎么可能会展现别的格式呢,说明你并没有返回Result对象,你可以试着用debug启动项目,然后打断点跟着程序看看

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result girlHandle(Exception e){
    if(e instanceof GirlException){
    GirlException ge=(GirlException)e;
    log.info(ge.getMessage(),ge);
    return ResultUtil.error(ge.getCode(), ge.getMessage());
    }else{
    //因为错误捕获,所以后台没有报错,这里我们通过日志将其打印出来,以便排错
    log.info("【系统发生错误】",e);
    return ResultUtil.error(-1, "系统发生了错误,请稍后再试,或联系管理员");
    }
    }

    https://img3.mukewang.com/5bc0738f0001cad007810276.jpg

    慕粉2137...

    谢谢,我异常处理类值是GirlException类了,没改成Exception类。学习了再次感谢!

    2018-10-12 18:32:23

    共 1 条回复 >

  • 慕粉2137351520
    2018-10-12 18:32:06

    谢谢,我异常处理类值是GirlException类了,没改成Exception类。学习了再次感谢!

  • 墩子_HelloWorld
    2018-10-10 11:33:27

    你这是后台报错了,而不是抛出异常,如果是抛出异常了才会打印系统异常,你看看是不是代码写的有错误

    慕粉4135...

    别给人家胡说NullPointException不就是抛出的异常么

    2018-10-12 18:09:35

    共 2 条回复 >

Spring Boot进阶之Web进阶

《2小时学习Spring Boot》之进阶教程,针对Web方面的相关技巧

104040 学习 · 393 问题

查看课程

相似问题