问答详情
源自:3-5 定义通用的返回对象--异常处理02

关于未知错误的处理。null指针还能set?BusinessException is never thrown in the method

课程6’30‘’左右,老师为了查看未知错误,把方法内部的throw给注释掉了

idea 提示 BusinessException is never thrown in the method 

并且浏览器页面也不显示未知错误,而是 status=500


另外,老师这段代码我有点不理解,UserModel都是null了,还能调用setEncrptPassword()方法?????

我这样写了,控制台直接报java.lang.ClassCastException: java.lang.NullPointerException cannot be cast

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

提问者:嘿亚恒 2019-06-01 21:58

个回答

  • 嘿亚恒
    2019-06-01 22:17:40

    我自己弄懂了,是因为我代码写错了

    if (ex instanceof BusinessException)

    我错误的写成了

    if (ex instanceof Exception)

    老师代码没问题,就是让UserModel==null,就是让它抛出java.lang.NullPointException,然后通过SpringBoot的注解

    @ExceptionHandler(Exception.class)

    进行拦截,然后自定义处理。

    总结:

    1、代码一定要跟着敲一遍甚至两遍三遍(我是跟着敲的第二遍,第一遍用了86h,惨不忍睹啊w(゚Д゚)w,这一遍感觉比上一遍顺利一些)

    2、敲错不要怕,处理好一个Bug会理解的更加深刻

    3、大家加油!