中易网

如何避免及解决万恶的java.lang.NullPointerException错误

答案:1  悬赏:0  
解决时间 2021-02-21 19:21
如何避免及解决万恶的java.lang.NullPointerException错误
最佳答案
作为一个java 程序员,特别是刚入门或初学者,遇到的最多的异常我想当属 java.lang.NullPointerException,当然这是一个不可避免的。不管你是多老的程序员,写的程序也不能保证不出现这个异常。但不可杜绝,并不代表不可避免,不可减少其出现的概率。下面就探讨下如何尽量避免其出现,首先看常见的出现该异常的原因。 常见原因至少有以下几类: 对java 对象不熟悉,特别体现在初学者及刚入门身上。如:类的成员还是对象的时候,初学者往往不知道如何初始化成员对象,结果导致对象为初始化就调用。 数据是从外部获取,如数据库,取出数据后不检查就直接调用,常发生在用hibernate 等orm 工具取完数据后数据展示部分。 java代码编写习惯。编写类方法不对方法参数进行检查就使用。 引入外部包,而没有引入外部包依赖包 粗心。这是最大的原因,特别是对于有一定编程经验的人来说
解决方法: 第一类属于java 基础不牢,建议多做练习,熟悉java 对象生命周期的相关知识。如java 对象内存分配,堆与栈,java 初始化过程等。 在外部读入数据的话,建议在读入数据后就检查其是否为null 。当然有时候也跟需求来定,但使用前必须做好检查工作。 跟编程经验有相当关系。公用的方法,一般使用前检查参数,该抛出异常的抛出异常,该用默认值的用默认值处理。一些私有方法,人们因为觉得只有自己使用,自己控制不传人null 值就可以,懒得去检查空异常。确实我自己也常这样干,但发现自己写的,但自己却总保证不了,不传入空。所以建议使用前检查,但可以不抛出异常,可使用断言,自己用默认值处理掉。 引入外部包出现NullPointerException,随着各种框架的发展而越来越常见。主要是人们盲目引用各种包,而不去详细评估引用包的效果,及不去了解所引入包的依赖包。现在有maven 工具,如果使用它构建工程的话,依赖报错可能就会少点了。 粗心。这个就没办法了,相信没几个人改得了。且因为粗心而出现的bug,自己往往很难找出原因,这时可以借下团队的力量,让同事帮你去找,可能很快就找到了 如何找NullPointerException 出错代码: NullPointerException 异常很找出出错位置还是比较容易的,java 的异常链机制可以让你很快找到错误代码所在。这里提醒一点千万不要使用 try { 代码; }catch(Exception){} 因为这样出错了控制台不报,log 不记,找死你。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陕西老碗面我想知道这个在什么地方
描写环境的四字词
如果别人盯着你的东西问你“为什么你有我没有
春晖五金怎么去啊,有知道地址的么
家里的爱浪音箱主音箱突然没有声音!!求指教
中国联通文东万豪社区营业厅地址在什么地方,
祝家庄探路的是谁
(月初库存+月末库存)/2怎么翻译
在聊天女仆这个软件里怎么找人
下对上叫"拜读",上对下叫什么
高中的体育生是什么
中国移动特约代理点(青湖国土资源管理所东)地
我想卖车怎样发布消息
身份证是1999.10.23,现在成年了吗?
户大姐土豆靓粉(太和店)在什么地方啊,我要过
推荐资讯
无棣网络商务宾馆地址在什么地方,我要处理点
哪些病人不适合吃四川泡菜
为什么我的让店铺弄了秒杀和直通车还是没人问
准备考研,理想职业是CRA,想报考药理学,但
东生能源科技公司我想知道这个在什么地方
中国职业经理人资格认证在什么地方啊,我要过
华晨购物中心东门地址在什么地方,想过去办事
为什么有的招聘网站上的单位一直都在招人
力求避免某些可能产生不利后果的事是什么词
this,see,evening,you连词成句
大连火车站到老虎滩和棒槌岛哪个近
喜之初孕婴世家地址有知道的么?有点事想过去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?