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 ...
随机推荐
- opencv3.0.1 中的SurfFeaturesFinderGpu类的问题.
最近需要实现一下图像配准的功能, 参考了一下opencv中的实现,发现几个问题, SurfFeaturesFinderGpu在找特征点的过程中会抛出异常,改了一下代码,可以运行了. void Surf ...
- poj3417 LCA + 树形dp
Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4478 Accepted: 1292 Descripti ...
- BZOJ 后缀自动机四·重复旋律7
后缀自动机四·重复旋律7 时间限制:15000ms 单点时限:3000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一段音乐旋律可以被表示为一段数构成的数列. 神奇的 ...
- 【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集
3673: 可持久化并查集 by zky Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 1878 Solved: 846[Submit][Status ...
- JavaScript系列文章:变量提升和函数提升
第一篇文章中提到了变量的提升,所以今天就来介绍一下变量提升和函数提升.这个知识点可谓是老生常谈了,不过其中有些细节方面博主很想借此机会,好好总结一下. 今天主要介绍以下几点: 1. 变量提升 2. 函 ...
- windows bat批处理语法简析
第一节先介绍windows批处理.这个起源于跟旁边同事学习在windows用命令行办公,渐渐地有些批处理功能就需要了,于是专门抽出了几天学习了一下.我认为文档最重要的功能是为了备忘,择取了很多文档的例 ...
- 机器学习——AdaBoost元算法
当做重要决定时,我们可能会考虑吸取多个专家而不只是一个人的意见.机器学习处理问题也是这样,这就是元算法(meta-algorithm)背后的思路. 元算法是对其他算法进行组合的一种方式,其中最流行的一 ...
- Linux常用命令和Shell编程基础
目录相关 cd - .与.. 分别表示当前目录和父目录 - ~与$HOME 都是指当前用户的主目录 - cd – 切换到上一次所在的目录(不一定是父目录) pwd - pwd 显示当前目录 - $PW ...
- 搭建http服务
一.本地测试 访问的地址为:localhost或者127.0.0.1
- tomcat用root权限也起不来
昨晚把服务器弄的启动不了了,先来还原一下作案现场, 错误操作过程:替换classes目录下的某个目录,比如com,由于替换了classes文件,所以需要重启tomcat,在bin目录下执行sh sta ...