黑马程序员技术交流社区

标题: 空指针异常如何处 [打印本页]

作者: 王小吉    时间: 2015-9-19 21:10
标题: 空指针异常如何处
经常会遇到空指针异常问题,如何解决


作者: 王鲁悦    时间: 2015-9-19 21:10
给变量赋值 数组别为空
作者: 15173139267    时间: 2015-9-20 11:12
  这分也给的太快了吧。 而且上面那人的回复真心不准确啊。  
         第一,你要理解为什么会出现空指针异常:   因为你定义一个变量,但是你给他赋值为null. 有一个对象Student,Student有一个方法show();     Student stu = null;    这里是不会报错的。 但是 stu.show();时,这里就会报错。   因为你的stu指向的是null,但是null没有任何方法或属性可以使用,所以报空指针异常. 当出现这种问题时,在myecilpse中哪行报空指针异常,第一反应就是,那一行中那个对象所指向的是null值.   然后根据你的业务,看看给这个对象进行引用的时候,是否代码上面没有将值赋给这个对象.
作者: tianweidong    时间: 2015-9-20 11:49
学习了。。。。。。
作者: heshiwei    时间: 2015-9-20 12:55
空指针和数组越界是Java最常见的两种异常,排除也最快。为避免这些异常,写代码的时候细心再细心,变量、引用用到再创建并赋值。只要习惯养成了,自然就会减少这种错误。即使难免遇到,排错也很快
作者: 朦胧色彩    时间: 2015-9-20 18:54
可以通过debug模式进行调试,找出哪个位置或者是哪个变量出现了null值,然后根据自己编写的代码逻辑思路找出为什么会出现了null值,也可能是代码不小心写错了也说不定,这是我个人的想法!
作者: Linstar    时间: 2015-9-21 22:07
涨知识了。
作者: hailiqh    时间: 2015-9-29 11:17
你的问题应该不是空指针的问题吧?应该是野指针的问题。
避免野指针的做法
①定义指针时同时初始化为NULL
②指针解引用之前,先去判断这个指针是不是NULL
③指针使用完之后,将其赋值为NULL
④指针使用之前,将其赋值绑定给一个可用地址空间
例:int a = 0;
      int *p = NULL;
      p = &a;
      if (p!=NULL){
      *p=4;}
      P = NULL;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2