荐 java程序员最常见的空指针异常java.lang.NullPointerException
前言
对于空指针异常来说java程序再熟悉不过,但是对于见到这类的异常,说明我们的系统还不够完善,RunTimeException:运行时异常,又称不受检查异常,不受检查!
不受检查!!不受检查!!!重要的事情说三遍,因为不受检查,所以在代码中可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。
官网api解释
public class NullPointerException
extends RuntimeException当应用程序尝试在需要对象的情况下使用null时抛出。 这些包括:
调用一个null对象的实例方法。
访问或修改null对象的字段。
取null的长度,好像是一个数组。
访问或修改的时隙null就好像它是一个数组。
投掷null好像是一个Throwable价值。
应用程序应该抛出此类的实例以指示null对象的其他非法使用。 NullPointerException对象可以由虚拟机构建,就像suppression were disabled and/or the stack trace was not writable一样 。
举例说明
我们创建一个测试类,然后创建一个判断字符串是否为空的方法,如下
package com.ssm.demo;
public class NullPointerExceptionTest {
public boolean testNullPointerException(String agr) {
if(agr.equals("")&&agr!=null) {
return true;
}else {
return false;
}
}
public static void main(String[] args) {
boolean isTure=new NullPointerExceptionTest().testNullPointerException(null);
}
}
运行后抛出空指针异常,如下图:
思考
如何避免这类问题的,首先我们要定位到报空指针的代码位置,分析上面的问题,是到了
agr.equals("")
报的空指针,那么我们考虑过agr!=null会报空指针么,改一下试试
可以看出来不会报空指针,也跟官网介绍的一毛一样,调用空对象的方法或属性才会报空指针,那么对于上面的判断字符串为空且不为空字符串时怎么办呢,我们可以这样修改,
一万年也不会报空指针了哈哈
"".equals(agr)
如果你喜欢我的分享,欢迎关注微信公众号 java学长分享技术干货!
悄悄告诉你免费赠送重磅互联网架构师教程,提升职场技术水平!
需要java1.8 中文api文档的,关注公众号,回复“java中文”即可领取!
本文地址:https://blog.csdn.net/jiarui_mama/article/details/107159514
推荐阅读
-
荐 java程序员最常见的空指针异常java.lang.NullPointerException
-
空指针异常,算得上是一个简单低级的错误吧 java.lang.NullPointerException: null
-
荐 java程序员最常见的空指针异常java.lang.NullPointerException
-
在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
-
在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法...