java 代码中预防空指针异常的处理办法

2016-02-19 10:59 1 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的java 代码中预防空指针异常的处理办法,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

项目中遇到的NullPointerException 分两种情况:

1. 引用空对象,即调用空对象的方法或引用空对象的属性。

2. 将8中基础类型的封装类赋值给对应的基础类。

1.对于别人接口的返回对象要做非空判断,因为我们不清楚获得的对象会不会为空,对于Collection Map 我一般会调用CollectionUtils MapUtils ,对于返回的String对象,我会调StringUtils.isNotEmpty()进行非空判断。他们中isNotEmpty不仅判断了NULL 还判断了空集合和空串。例如从数据中查询的结果。工作流中返回的定价URL

2. 对于自己创建的对象,要留心对象进行哪些操作,中间会不会造成对象为空,如果可能加非空判断,尤其是对于集合的操作,很容易就报空指针!!!所以每次对操作集合时,我都会非常的留心。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

3. 对于前台的领域对象要非常的留心,因为这些对象是框架创建的,假如我没有在前台的文本框内输入值,虽然提交时后台获得的是空串,但发生NullPointerException的概率很高。

4. 对于String 的操作尽量使用apache 的StringUtils类,与String相比这个是非常的安全。对于集合的操作使用apache的CollectionUtils 、MapUtils, 相比apache工具类的执行效率也非常的高,比如StringUtils.split();

有人说过多的判断会影响性能,我个人认为这里的性能牺牲和系统的安全相比是微不足道的。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1596283.html

延伸阅读
一、内层方法抛出异常,外层方法捕捉并处理异常: public void methodA (){ try{ // 调用methodB methodB(); } catch(ExceptionType et){ // 相应处理措施 } } public void methodB throws ExceptionType{ if (condition is true) { // 相应处理措施 } else { throw new ExceptionType(argument); } } 在这个例子中,方...
早期的编程语言(比如C语言)没有异常处理,通常是碰到错误返回一个非凡的值或设定一个标志,并以此判定是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。 !-- frame contents -- !-- /frame contents -- 于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“on error g...
异常是程序运行中发生的错误,异常处理是程序设计的一部分。在c#中异常处理是通过Exception基类进行的,可以创建自己的异常类,但这个类必须是继承自Exception基类。 异常将导致不完善或者不需要的结果,因此在程序设计中需要处理异常。异常也可以是象"IndexOutOfBounds"这样的错误,这个错误表示程序试图访问数组中部存在...
今天在部署一个webservices程序的时候,从页面获取数据的servlet出现了乱码问题,在servlet中我已经把request.setCharacterEncoding("GB2312");这段文字加入到代码中去,但是还是出现乱麻问题。  到网上找资料,如下:JAVA是Unicode编码,你先转换成ISO8859-1,然后再转换成GBK或是GB2312. java 代码 代码如下: request.setCharacterE...
标签: ASP
  错误处理是让程序员牢骚满腹的东西之一。让我们来面对它,我们不写错误的代码就是了。。。或者类似的想法。不幸的是,代码中的运行时错误可能有许多的原因,从硬件、软件的改变到使用了别的开发团队的代码等等。有效的处理这些错误并使得它对于网站正常操作过程的中断最小化是每个有良知的程序员的责任。   在本文讨论的范围内,...

经验教程

986

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部