java.lang.NullPointerException的可能原因及处理

java.lang.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化。

  1. 字符串等数据类型没有初始化
  2. 类实例(对象)有用具体的类初始化
  3. 没有判断是否为空

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的可能原因及处理的更多相关文章

  1. Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

    使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 ActionContext c ...

  2. Type Unknown error: java.lang.NullPointerException

    Android 项目开发的时候 出现: Description Resource Path Location Type Unknown error: java.lang.NullPointerExce ...

  3. 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 ...

  4. 一般报java.lang.NullPointerException的原因有以下几种

    一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化: ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = ...

  5. java.lang.NullPointerException 错误原因

    [http-nio-8081-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for ...

  6. PropertyUtils.copyProperties(); java.lang.NullPointerException可能产生的原因

    PropertyUtils.copyProperties(Object dest, Object orig); 出现空指针异常可能产生的原因(不一定准确):java.lang.NullPointerE ...

  7. 【Java】java.lang.NullPointerException的两个原因

    自己写程序时出现过 java.lang.NullPointerException错误的一些原因 (1)自己建立了一个数组,但每个数组元素没单独初始化(单独new一个新对象). (2)在进行if (ar ...

  8. [hadoop] map函数中使用FileSystem对象出现java.lang.NullPointerException的原因及解决办法

    问题描述: 在hadoop中处理多个文件,其中每个文件一个map. 我使用的方法为生成一个文件,文件中包含所有要压缩的文件在HDFS上的完整路径.每个map 任务获得一个路径名作为输入. 在eclip ...

  9. 报错:空指针java.lang.NullPointerException 原因 Action层 private UserService userservice 上未加@Autowire注解

    java.lang.NullPointerException at com.itheima.test.Test2.fun1(Test2.java:18) at sun.reflect.NativeMe ...

随机推荐

  1. asp.net获取服务器绝对路径和相对路径

    绝对路径 AppDomain.CurrentDomain.SetupInformation.ApplicationBase 相对路径 Server.MapPath("~/")表示当 ...

  2. EncodingHelper

    /// <summary> /// Url解码 /// </summary> /// <param name="str">原始字符串</p ...

  3. CentOS利用nginx和php-fpm搭建owncloud私有云

    1.安装owncloud CentOS下有一键安装命令 yum install owncloud 默认配置目录: /etc/owncloud 默认内容目录: /usr/share/owncloud 2 ...

  4. Ajax请求示例

    模板 {% for row in host_list %} <tr> <td class="c1">{{ row.id }}</td> < ...

  5. 【hrbust2294】修建传送门

    题意 哈理工2016级新生程序设计全国邀请赛B题 n个点1~n,i到i+1的距离为a[i],现在可以在两个点之间建一个传送门,则两点之间距离为0,求建传送门后1号出发的最远距离最小是多少? 题解 a[ ...

  6. RabbitMQ 集群+负载均衡

    负载均衡 集群的配置已经搭建好了,代码也成功跑通,成功做到了高可用,但是我们的程序连接节点并不会管哪个服务器在忙.哪个服务器空闲,完全看心情想连谁就连谁.而且代码中要把每个ip的节点都手动的写出来 , ...

  7. Win7硬盘整数分区一览表

    10G=10245 MB 20G=20482 MB 30G=30726 MB 40G=40963 MB 50G=51208 MB 60G=61444 MB 70G=71681 MB 80G=81926 ...

  8. 拖动对象ondrag

    说明: 在进行拖放操作时,dataTransfer 对象用来保存被拖动的数据.它可以保存一项或多项数据.一种或者多种数据类型.dataTransfer对象有两个主要的方法:getData()方法和se ...

  9. Solved: “Cannot execute a program. The command being executed was \roslyn\csc.exe”

    When you publish your ASP.NET project to a hosting account such as GoDaddy, you may run into the iss ...

  10. 移动端开发概览【webview和touch事件】

    作为一个前端,而且作为一个做移动端开发的前端,那意味着你要有三头六臂,跟iOS开发哥哥一起打酱油,跟Android开发哥哥一起修bug... Android vs Ios 我在webkit内核的chr ...