java.lang.NullPointerException 运行异常

3 篇文章 0 订阅
一般报java.lang.NullPointerException的原因有以下几种: 
·字符串变量未初始化; 
·接口类型的对象没有用具体的类初始化,比如: 
List lt; 会报错 
List lt = new ArrayList(); 则不会报错了 
·当一个对象的值为空时,你没有判断为空的情况。 
你可以试着把下面的代码前加一行代码: 

if(rb!=null);
  ...................
 
 
String类型的对象可以做如下判断

if(rb!==null&&!"".equals(rb)) 
……
 
当然还可以多做一个判断,是否不为空字符串
 

if(rb!==null&&!"".equals(rb.trim())) 


在外文网站上看到的:

1. Calling the instance method of a null object. 
2. Accessing or modifying the field of a null object. 
3. Taking the length of null as if it were an array. 
4. Accessing or modifying the slots of null as if it were an array. 
5. Throwing null as if it were a Throwable value. 

-------------------------

1:NullPointerException由RuntimeException派生出来,是一个运行级别的异常。意思是说可能会在运行的时候才会被抛出,而且需要看这样的运行级别异常是否会导致你的业务逻辑中断。
 2:空指针异常发生在对象为空,但是引用这个对象的方法。例如: String s = null; //对象s为空(null) int length = s.length();//发生空指针异常  
 3:一个变量是null,及只有其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进行操作就会出现NullPointException,所以生命一个变量时最好给它分配好内存空间,给予赋值。  
  4:比如变量为空,而你没有去判断,就直接使用,就会出现NullPointException。写程序时严谨些,尽量避免了,例如在拿该变量与一个值比较时,要么先做好该异常的处理如: if (str == null) {   System.out.println("字符为空!"); } 当然也可以将这个值写在前面进行比较的,例如,判断一个String的实例s是否等于“a”,不要写成s.equals("a"),这样写容易抛出NullPointerException,而写成"a".equals(s)就可以避免这个问题。不过对变量先进行判空后再进行操作比较好  
 5:尽量避免返回null,方法的返回值不要定义成为一般的类型,而是用数组。这样如果想要返回null的时候,就返回一个没有元素的数组。就能避免许多不必要的NullPointerException,使用NullObject返回代替返回null确是一种不错的选择。 



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值