令人头痛的null pointer

问题描述

如何解决nullpointer大家有什么好的建议吗大家一起来讨论下呗好头疼啊破玩意天天异常脑袋都大啦

解决方案

解决方案二:
这个....完全是代码错误导致的异常,除了使用前检查,和修改导致null的bug,有啥好办法呢?要说outofmemory,或者toomanyopenfiles这类和系统相关的,还可以讨论讨论,空指针?真的是你自己的代码问题哎
解决方案三:
之前我也一直为这个问题头疼..其实eclipse的debug功能能够很快查出问题
解决方案四:
空指针。。记得随时随地先初始化变量再用,应该会减少空指针发生异常的概率,但要完全避免几乎是不大可能的,只能尽力将程序完善
解决方案五:
不难啊,养成良好的习惯,这东西就不会出来了
解决方案六:
一定要初始化,这样可以简单解决掉问题。
解决方案七:
只能预防。if(obj!=null){obj.getName();//.....正常处理}else{///}
解决方案八:
做到初始化!类型要确定!
解决方案九:
这个是编程错误,当然要编程者自己解决。
解决方案十:
记得Scala就极力避免出现NPE
解决方案十一:
当你碰见多了,就知道那可能出错了
解决方案十二:
反过来想,如果调用一个null对象的方法而不抛NPE,那么编程语言应该如何更合理地处理这种情况?
解决方案十三:
编程时,注意一下,用一个对象调用方法时,一定要确定这个对象不是null例如:用equals方法时,最好把常量放前面,避免空指针异常。
解决方案十四:
处理下异常不就行了?
解决方案十五:
空指针异常90%以上是由不好的编码习惯造成的。比如:没有对方法传入的参数进行检查;调用其他接口返回的数据没有进行检查等等之类。
其他方案:
采用防御式编程就好了
其他方案:
空指针应该是比较好排查的问题
其他方案:
就两个字心细
其他方案:
空指针的问题一般都是因为没有实例化对象,例如从其他地方获取的类,从数据库中取来的数据,或者是自己编程的时候没有细心。其实,有一些方法是可以避免这种问题的。比如1.自己在定义类的时候,对类中的需要实例化的变量,记住实例化。2.在使用的时候,多加个判断。例如一个String类型的变量content,我们拿它来跟"Thisisastring"字符串进行比较。就可以这样做:if(null!=content){if(content.equals("Thisisastring"){//...dosomething.}}

或者也可以直接使用if("Thisisastring".equals(content)){}

的方式。但最主要的目的还是去避免这个空指针的问题。。
其他方案:
认真仔细···
其他方案:
初始化好了就可以了,例如Strngtest=null;try{test=Object.getXXX();//即使这个地方取不到值,也不会报空指针异常,因为前面已经初始化了}catch(Exceptione){e.printStack();}

其他方案:
还是养成良好的习惯吧

时间: 2024-08-01 20:32:08

令人头痛的null pointer的相关文章

NULL指针\零指针、野指针

野指针:"野指针"不是NULL指针,是指向"垃圾"内存(不可用内存)的指针.人们一般不会错用NULL指针,因为用if语句很容易判断.但是"野指针"是很危险的,if无法判断一个指针是正常指针还是"野指针".  "野指针"的成因主要有三种: 1)指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL

解析C语言中空指针、空指针常量、NULL & 0的详解_C 语言

什么是空指针常量(null pointer constant)?[6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. 这里告诉我们:0.0L.'\0'.3 - 3.0 * 17 (它们都是"integer constant expression")以及 (void*

嵌入式经典面试题

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法.这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的.     从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况.这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢 的问题吗?如要你答出某个字符的ASCII值.这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而

c++指针的应用及注意问题

指针是c/c++学习一个比较让人头痛的问题,在程序设计过程中,指针也往往是产生隐含bug的原因.下面就来谈谈指针的应用以及需要注意的一些问题,里面也许就有你平时没有注意到的问题,希望能帮助各位读者理解好指针. 一.我们先来回忆一下指针的概念吧,方便下面的介绍 指针是存放地址值的变量或者常量.例如:int a=1;&a就表示指针常量("&"表示取地址运算符,也即引用).int *b,b表示的是指针变量(注意,是b表示指针变量而不是*b),*表示要说明的是指针变量.大家注意

C安全问题与指针误用

指针的声明与初始化 1.不恰当的指针声明 考虑如下的声明: int* ptr1, ptr2; // ptr1为指针,ptr2为整数 正确的写法如下: int* ptr1, *ptr2; 用类型定义代替宏定义是一个好的习惯,类型定义允许编译器检查作用域规则,而宏定义不一定会. 使用宏定义辅助声明变量,如下所示: #define PINT int* PINT ptr1, ptr2; 不过结果和前面所说的一致,更好的方法是使用下面的类型定义: typedef int* PINT; PINT ptr1,

Nice用户手册(二)

序本手册描述了Nice编程语言.它目前正在修订之中,这意味着这门语言在许多方面还不完整,或有些部分基本上还是空白.在此期间,建议同时阅读<Nice Tutorial>[http://nice.sf.net/language.html],该书包括了许多额外信息.阅读这两篇文档需要一些Java的知识,或至少了解一种面向对象语言. 本手册的作者是Daniel Bonniot和Bryn Keller,Francis Barber也参与其中.   第一章 基本原理A language that does

Declarations and Access Control (1)

access 1) Declarations and Access Control Objective 1Write code that declares, constructs and initializes arrays of any base type using any of the permitted forms, both for declaration and for initialization. 1.    Arrays are Java objects. (An object

C++中函数模板(function template) 的 重载(overload) 详解

函数模板(function template)重载, 即实例化特定的模板, 确定T的类型, 选择匹配度最高的一个; 需要注意传递的具体类型, 如传递的是"&s", 则表示"string* t = &s", 即实际匹配的类型为"string* t"; 当非函数模板和函数模板匹配度相同时, 优先选择非函数模板; 调用模板时, 一定要注意顺序, 或者提前声明, 以保证可以找到函数模板, 进行实例化; 具体参见代码注释, 代码如下: /*

如何在Java中避免空指针异常

空指针异常(Null Pointer Exception)是我们平时最容易碰到的,也是最令人讨厌的异常.本文介绍如何避免出现空指针异常. 首先我们看如下的示例 private Boolean isFinished(String status) { if (status.equalsIgnoreCase("Finish")) { return Boolean.TRUE; } else { return Boolean.FALSE; } } 如果status的值为空的话,那么将会出现空指针