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 ... 
随机推荐
- ant windows环境配置
			详见如下链接,小蚂蚁builder.xml--apache-ant的配置 http://blog.csdn.net/gaohuanjie/article/details/40142687 
- arcgis出图步骤(缩减版)
			public boolean dzjyfbPicture(Map<String, Object> map) throws UnknownHostException, IOException ... 
- iOS开发小技巧 - label中的文字添加点击事件
			Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ... 
- Python进制转换
			一 内置函数 bin().oct().hex()的返回值均为字符串,且分别带有0b.0o.0x前缀. 实例 统计二进制数里1的个数 def countBits(n): return bin(n).co ... 
- 【BZOJ-2119】股市的预测      后缀数组
			2119: 股市的预测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 334 Solved: 154[Submit][Status][Discuss ... 
- 【BZOJ-4197】寿司晚宴      状压DP
			4197: [Noi2015]寿司晚宴 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 694 Solved: 440[Submit][Status] ... 
- tomcat/jsp/servlet版本关系
			Servlet Spec JSP Spec EL Spec WebSocket Spec JASPIC Spec Apache Tomcat version Actual release revisi ... 
- div内容溢出时显示滚动条
			在style中添加overflow:scroll属性即可. 
- Prism 轻量级可扩展代码高亮库.
			官方网站:http://prismjs.com/ Prism 是一个轻量级并且简单易用的 JavaScript 类库,minified 和 gzipped 压缩后只有 1.5kb 大小,即使添加语言定 ... 
- [原创] C# dynamic拼接Json串
			using Newtonsoft.Json; 之前拼接两个json串,是用的这样的代码 , json1.Length - ); json2 = json2.Insert(json2 - , tmp); ... 
