这个是空指针异常,空指针的解决办法: 重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。
在Java中一般报空指针异常的原因有以下几种:
1、字符串变量未初始化;
2、接口类型的对象没有用具体的类初始化,比如:
List lt;会报错
List lt = new ArrayList();则不会报错了
3、当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:
if(rb!=null &&rb!="")
改成:
if(rb==null)
if(rb!==null&&rb!="") 或者if((“”).equals(rb))
扩展资料:
空指针异常的报错
root cause
java.lang.NullPointerException
Dao.BookInfor.ImFromClassification(BookInfor.java:31
org.apache.jsp.front.home_jsp._jspService(home_jsp.java:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
java 出现空指针异常时默认为指定值的解决方式:
查找对象是否初始化,定位代码出错点,进行赋值初始化。
检查数据是否越界访问,将数组的大小扩大。
如下代码:
package com.qiu.lin.hepublic class CeShi {
public static void main(String[] args) {
CeShi ce = null
System.out.println(ce.toString())// 对象没有初始化,也会报空指针
int[] intStr = new int[] { 1, 2, 3, 4, 5 }
System.out.println(intStr[5])// 访问第六个下标就会出错
}
}
运行结果如下:
Exception2finally
分析:
首先NullPointerException被catch(Exception e1)捕获,打印Exception2,因为有finally,最终还会执行finally中的代码。
注意:
IOException不是运行期异常,方法显示抛出,所以,你的run方法肯定要抛出IOException,否则编译通不过。