java.lang.NullPointerException的可能原因及处理
java.lang.NullPointerException的可能原因及处理
java.lang.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化。
- 字符串等数据类型没有初始化
- 类实例(对象)有用具体的类初始化
- 没有判断是否为空
Eg:
源码:
public static BookInformation[] ImFromClassification(String a){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
int x = 0;
conn = LinkMysql.getDBconnection();
if(conn == null){System.out.println("conn");}
String sql="select * from bookinformation where classification=?";
ps = conn.prepareStatement(sql);
ps.setString(1, a);
rs = ps.executeQuery();
rs.beforeFirst();
while(rs.next()){
++x;
}
System.out.println(x);
BookInformation[] a1 = new BookInformation[x];
rs.first();
for(int i = 0; i < x; i++){
//a1[i] = new BookInformation();
a1[i].setName(rs.getString("name"));
a1[i].setAuthor(rs.getString("author"));
a1[i].setClassification(rs.getString("classification"));
a1[i].setAmount(rs.getInt("amount"));
a1[i].setPrice(rs.getInt("price"));
a1[i].setSalvesVolum(rs.getInt("sales_volum"));
rs.next();
}
return a1;
} catch (SQLException e) {
System.out.println("xxx");
return null;
}
finally{LinkMysql.closeDB(conn, ps, rs);}
}
报错:
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)
分析:
数组定义(BookInformation[] a1 = new BookInformation[5])之后,没有对每个数组元素初始化。
更改:
public static BookInformation[] ImFromClassification(String a){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
int x = 0;
conn = LinkMysql.getDBconnection();
if(conn == null){System.out.println("conn");}
String sql="select * from bookinformation where classification=?";
ps = conn.prepareStatement(sql);
ps.setString(1, a);
rs = ps.executeQuery();
rs.beforeFirst();
while(rs.next()){
++x;
}
System.out.println(x);
BookInformation[] a1 = new BookInformation[x];
rs.first();
for(int i = 0; i < x; i++){
a1[i] = new BookInformation();
a1[i].setName(rs.getString("name"));
a1[i].setAuthor(rs.getString("author"));
a1[i].setClassification(rs.getString("classification"));
a1[i].setAmount(rs.getInt("amount"));
a1[i].setPrice(rs.getInt("price"));
a1[i].setSalvesVolum(rs.getInt("sales_volum"));
rs.next();
}
return a1;
} catch (SQLException e) {
System.out.println("xxx");
return null;
}
finally{LinkMysql.closeDB(conn, ps, rs);}
}
java.lang.NullPointerException的可能原因及处理的更多相关文章
- Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法
使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 ActionContext c ...
- Type Unknown error: java.lang.NullPointerException
Android 项目开发的时候 出现: Description Resource Path Location Type Unknown error: java.lang.NullPointerExce ...
- java.lang.NullPointerException org.apache.jsp.WEB_002dINF.pages.imagecheck.test_jsp._jspInit(test_jsp.java:22)的原因
HTTP Status 500 - type Exception report message description The server encountered an internal error ...
- 一般报java.lang.NullPointerException的原因有以下几种
一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化: ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = ...
- java.lang.NullPointerException 错误原因
[http-nio-8081-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for ...
- PropertyUtils.copyProperties(); java.lang.NullPointerException可能产生的原因
PropertyUtils.copyProperties(Object dest, Object orig); 出现空指针异常可能产生的原因(不一定准确):java.lang.NullPointerE ...
- 【Java】java.lang.NullPointerException的两个原因
自己写程序时出现过 java.lang.NullPointerException错误的一些原因 (1)自己建立了一个数组,但每个数组元素没单独初始化(单独new一个新对象). (2)在进行if (ar ...
- [hadoop] map函数中使用FileSystem对象出现java.lang.NullPointerException的原因及解决办法
问题描述: 在hadoop中处理多个文件,其中每个文件一个map. 我使用的方法为生成一个文件,文件中包含所有要压缩的文件在HDFS上的完整路径.每个map 任务获得一个路径名作为输入. 在eclip ...
- 报错:空指针java.lang.NullPointerException 原因 Action层 private UserService userservice 上未加@Autowire注解
java.lang.NullPointerException at com.itheima.test.Test2.fun1(Test2.java:18) at sun.reflect.NativeMe ...
随机推荐
- JsonResult类设置返回json的长度(工作笔记 json转化出错)
public JsonResult PoundageReportSearch() { JsonResult jr = new JsonResult(); // 实例 ...
- cocos2dx3.0的CCCallFunc、CCCallFuncN
来源: http://blog.csdn.net/crayondeng/article/details/18767407 二.在cocos2d-x中,还有一个地方是需要大量使用到回调函数的,这就是回调 ...
- Yii2开启enableprettyurl(url美化)无效
最终显示的url格式为:http://localhost/yii2/frontend/web/site/about 在/config/main.php中 'components'=>[] 中添加 ...
- Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建
2016年11月15日11:15:47 Windows下如果碰到如此问题,要看文件保存根路径里的rootpath,比如ThinkPHP框架里config.php文件里的的参数配置: //文件上传相关配 ...
- linux动态代码注入
参考网上文章:http://www.freebuf.com/articles/system/6388.html 按照文章,实现了代码的动态注入,即对一个正在运行的进程,在不重启的情况下执行一段不在原程 ...
- Python检测服务端口存活状态并报警
最近发现公司的测试环境中有个Socket服务的端口总是莫名其妙Down掉,但是服务却正常运行着,看样子是僵死了... 虽然是测试环境,但是也不能这样放着不管,于是连夜写了一个简单的监控脚本.因为服务器 ...
- [Android]快捷键
小技巧,快捷键 快捷键创建资源: Windows下是 alt+enter; Mac下是Option+enter 创建构造函数,Get/Set:Command+N,Windows环境中Alt + Ins ...
- 分页型Memory LCD显存管理与emWin移植
上一篇随笔整理了一下逐行扫描型Memory LCD的显存管理与emWin移植,这篇就整理一下分页型Memory LCD显存管理与emWin移植. //此处以SSD1306作为实例 //OLED的显存/ ...
- Mac下安装ionic和cordova,并生成iOS项目
为了开发HTML5,除了最新使用React Native等之外,目前首选的为稳定的ionic+Angularjs来开发iOS和android. Ionic(ionicframework一款接近原生的H ...
- Eclispe远程调试tomcat设置
首先在catelina.sh中添加 JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=23787,server=y,su ...