异常之java.lang.nullpointerexception 怎么解决及出现原因? | 您所在的位置:网站首页 › 原神哪里看圣遗物评分 › 异常之java.lang.nullpointerexception 怎么解决及出现原因? |
空指针异常问题很常见,个人觉得有意义拿出谈谈,以下是我遇到异常: HTTP Status 500 – Internal Server Error Type Exception Report Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception java.lang.NullPointerException org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:180) com.kaikeba.mvc.DispatcherServlet.service(DispatcherServlet.java:42) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) com.e.filter.CharSetFilter.doFilter(CharSetFilter.java:16)Note The full stack trace of the root cause is available in the server logs. Apache Tomcat/9.0.13 解决方法:定位到报空指针异常的这一行代码,找到有"." 即有点的地方,任何有"."点的地方,都有可能报空指针异常。 调用任何对象的属性和方法都有可能会报空指针异常,下面举例说明。 假设ob是一个对象,没有初始化的时候 ob.属性,ob.方法,都是会报java.lang.nullpointerexception空指针异常的。 正确的方法如下: Object ob=new Object(); ob.toString; 这才是正确的打开方式。 如果报错的代码包含多个"."点如何处理? 一个一个“点”去分析。 比如 xxx.yy.zz , 这个代码你要逐步去判断,xxx是不是可能为空,xxx不为空的情况下,再判断yy是不是为空。 点击绿色的报错提示,这就是你报空指针异常的代码位置,在150,点击打开,找到对应的这一行代码,逐个分析有点"."的地方。这是排查空指针异常的关键。 如何避免空指针异常? 使用一个对象前先判断是否为空,if(xxx!=null)再进行下一步的操作。 equal方法的时候,把不为空的放前面,比如 "xxx".equals(Test),字符串"xxx"是不可能为空的,错误的写法为: Test.equals("xxx"),这个时候Test为空的时候,就有可能抛空指针异常。 总结一下空指针异常抛出的几个场景: 1、字符串变量未初始化 2、接口类型的对象没有用具体的类初始化,比如: Object ob // 会报错 Object ob = new Object(); //则不会报错了 3、当一个对象的值为空时,你没有判断为空的情况。 4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals(“Test”)){} 正确的写法应:if("Test".equals(str)){} 5、优先使用String.valueOf()方法代替toString() 当程序代码需要对象的字符串表示形式时,请避免使用该对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null" 6、class被声明了类型, 默认 class = null; 这样在调用class中方法的时候系统只能给你个空指针异常, 给其实例化就好了:class = new Class(); 7、返回null,方法的返回值不要定义成为一般的类型,而是用数组。这样如果想要返回null的时候就能避免许多不必要的NullPointerException 8、调用null对象的实例方法。 9、访问或修改null对象的字段。 10、把长度null当作一个数组。 11、像访问或修改null阵列一样访问或修改插槽。 12、service方法引用注解的,有可能没有写注解(这个问题以前没有用代码模板工具经常出现); 13、mapper文件的dao路径引用路径写错。 14、sql语句写错,(这个问题你在写sql语句的时候应该跑一下看看有没有错误,我觉得很有必要) java语言设计此异常来指示null对象的其他非法使用。 你看懂了吗?java.lang.nullpointerexception空指针异常是java开发中最容易遇到的一个异常,也是最容易排查的一个异常。 转载于java.lang.nullpointerexception 怎么解决及出现原因?以及其他 |
CopyRight 2018-2019 实验室设备网 版权所有 |