Skip to content

Latest commit

 

History

History
237 lines (124 loc) · 14.7 KB

npe.md

File metadata and controls

237 lines (124 loc) · 14.7 KB
title shortTitle category tag description head
Java空指针NullPointerException的传说
空指针的传说
Java核心
异常处理
本文详细解析了Java编程中的空指针异常(NullPointerException)现象,从产生原因、常见场景到预防方法,为您揭开NullPointerException的神秘面纱。文章还提供了实际代码示例,帮助您理解如何在实际开发中避免空指针异常,提高代码的健壮性和可靠性。
meta
name content
keywords
java,npe,NullPointerException

8.4 空指针的传说

空指针,号称天下最强刺客。

他原本不叫这个名字,空指针原本复姓异常,空指针只不过是他的武器,但他杀戮过多,渐渐地人们只记住了空指针这三个字。

天下武功,唯快不破,空指针的针,以快和诡异著称,稍有不慎,便是伤亡。

... ...

我叫王二,我来到这个奇怪的世界已经一年了,我等了一年,穿越附赠的老爷爷、戒指、系统什么的我到现在都没发现。

而且这个世界看起来也太奇怪了,这里好像叫什么 Java 大陆,我只知道这个世界的最强者叫做 Object,听说是什么道祖级的存在,我也不知道是什么意思,毕竟我现在好像还是个菜鸡,别的主角一年都应该要飞升仙界了吧,我还连个小火球都放不出来。

哦,对了,上面的那段话是我在茶馆喝茶的时候听说书的先生说的,总觉得空指针这个名字怪怪的,好像在什么地方听说过。

我的头痛的毛病又犯了,我已经记不起来我为什么来到这里了,我只记得我的名字叫王二,其他的,我只感觉这个奇怪的世界有一种熟悉,但是我什么都记不起来了。

算了,得过且过吧。

我准备去找空指针了,虽然听说他很可怕,但是好像听说他不是嗜杀之人,应该不会滥杀无辜吧,目前为止,我也只对这三个字有熟悉的感觉了,我一定要找到他,找回我的记忆!

我打听了很久,原来空指针是异常组织的三代嫡传,异常组织是这个世界上最恐怖的杀手组织,空指针就是异常现在最出色的刺客。

听说空指针出生的时候,脖子上就挂着一根针,整个 Java 大陆雪下一月不停,Linux 森林多块陆地直接沉陷,于是他的父亲 RuntimeException 就给他起了空指针这个名字。

空指针出生的天生异象也引起了异常组织高层的注意,听说他的祖父 Exception,还有整个异常组织的领军人物 Throwable 都亲自接见了空指针,并且认为空指针天赋异禀,未来可期。

要知道,Throwable 可是 Object 亲自任命的异常组织头领。作为 Object 最值得信任的亲信,跟随 Object 万年以来,所有的脏活累活都依靠 Thrwoable 创立的异常组织来处理,真可谓一人之下,万人之上。

Throwable 只有两个亲子,就是 Error 和 Exception,传说中 Error 心狠手辣,手下无一活口,见过 Error 的人还能活下来的寥寥无几。

整个大陆只有他们恐怖的传说,谁也不知道他们什么时候出现,但是一旦他们出现,基本宣告着你已经是个死人了。

而我听说过最恐怖的就是OutOfMemoryError 和 StackOverflowError 这两位刺客,因为大陆上永远有一座风云榜悬挂在帝都门口,而这两位,一直位居杀手榜榜首位置,空指针也只只能屈居第三而已。当然,大陆不少人都认为空指针会后来居上。

我的消息只是打听到这么多,接下来的日子,我走过无数的城市、荒野,我穿过沙漠、丛林,这一天,终于,我来到了大陆的帝都--

这个名字听起来也有点耳熟,不管他,先进城再说。

进城后我发现这里非常诡异,整座城市好像都非常年轻,好像连一个成年人都没有!街道上熙熙攘攘竟然都是年轻人。

带着疑惑,我走进了一家叫做同福客栈的酒楼。

”客官,打尖还是住店啊?“一个小二模样的小孩带着一丝谄媚的对我说。

”住店,带我去最好的房间,这些钱先押你这里,不够再跟我要。“一路走来,对于这些地方的行情我也算轻车熟路了。

”小朋友,这里是怎么回事?你们这里没有大人吗?“我一边走一边问这个只有我一半身高的小孩,根据我目测,他身高不超过1米,应该还只有七八岁的样子,难道这里的商人如此黑心,竟然雇佣童工,不过这也不貌似不对,因为周围的客人好像也都是这般年纪,他们竟然还有在抽烟喝酒的!

”客官可真幽默,不过我看客官应该是刚来帝都,不瞒您说,整个帝都就基本没有超过15岁的人,超过15的据说都在叫做老年区的养老去了!就拿我来说吧,我今年可不小了,我都8岁了,像我这般年纪的已经半截腿迈进棺材咯。哎,这身子也是一年不如一年了。“

看着这个小二一脸认真的样子,我越发觉得这座城市诡异起来了!8岁,什么鬼?8岁不是应该在家里看喜羊羊吗?!还半截腿迈进棺材!

”可是你看我比你高这么多,你不觉得奇怪吗?“我奇怪的问他。

”有什么好奇怪的,要不是我小时候喝多了三鹿,没准我也长这么高了!“小二有点生气的对我说。

行吧,再说两句把他激怒了,跳起来打我膝盖就大事不妙了。

接下来的几天,经过我的打探,原来我在的地方是叫做年轻区,整个帝都就只有这两个区域,年轻区的人年龄确实没有超过15岁的,有些人刚出生没几天就死了,对此,生活在这里的人也见怪不怪了。对于他们来说,寄希望能活到超过15岁进入老年区养老就是他们的梦想。

我在怀疑是不是异常组织在这里暗杀,可是发现结果并不是,这里的人貌似已经习惯了,生活对他们来说就是随便活活就好了,每次的死亡对于他们来说毫无征兆,可能刚踢着球呢,就突然挂了,有的上着厕所突然就死了,临死前连个屁股都没擦,不说了,有点恶心。

就在我等的不耐烦想打算去老年区看看的时候,一个穿着黑衣的人找到了我。

”你是谁?“我警惕的问他。

”本座IOException。“黑衣人神情冰冷的看着我说。

”你找我什么事?“

”这些你不用知道,跟我走一趟吧!“

我刚想说话拒绝,开什么玩笑,跟你们异常组打交道的人非死即残,谁要跟你去。

但是由不得我拒绝,我只感觉一阵天旋地转,我感觉我在天上飞,然后我就失去了意识。当我醒来的时候,我发现我躺在一张巨大的床上,桌子上点着一支檀香,整个房间只有一张桌子、一把椅子和我躺的地方。

房间很小,应该只有10几个平方,但是我竟然又有一种熟悉的感觉,这种感觉萦绕在我心头挥散不去。

没等我再想更多,房门打开了。

”是你,你把我带来干什么?“

”走吧,有人要见你。“

还是不容我抗拒,如果我的战斗力是5的话,我想,IO他该有好几万了吧。

又是这该死的眩晕感,不过这次没有几秒钟,我就发现我在一个花园里,花园中间一个身穿黄袍的中年人正在慢悠悠的喝茶。在他身上我感受不到任何强大的气息,甚至不如IOException给我的压迫感强烈。这是谁?

不等我思绪飘飞,IOException弯腰躬身说道:”陛下,人带过来了。“

”嗯,你退下吧。“中年人转过身来,脸上丝毫看不出情绪的说道。

我大概猜到了这是哪里了,于是也放下心来,在这里,或许能找到我的答案。

反正他要对我怎么样,我也没有办法反抗,我径直坐到他的对面,看着他说:”您就是Object陛下吧,不知找我所谓何事?“

中年人也不在意,没有正面回答我的问题,反而略带一丝调侃的说道:”不用咬文嚼字,说点正常人的话吧。“

... ...

这不按套路出牌啊,我这不是来久了,模仿你们古代人说话嘛,怎么还埋怨起我来了?!

”那我就直说了,我想知道空指针在哪里。“

”空指针就在皇宫轮值,你找他干嘛?“

”我暂时不能说“

”呵呵,你就不好奇我为什么知道你,为什么又把你带过来?“

”好奇,可是我就是不想问。“

Object喝了口茶,不紧不慢的回道:”年轻人有性格是好事,可是过刚易折的道理你应该明白。“

”我不明白,我在这里反正也没看见什么老人,当然,除了你。“我理所当然的认为这肯定是Object搞得鬼,整个帝都都是小朋友,要是没有猫腻,骗鬼呢!

Object听到这话,皱了皱眉,他沉默了一会儿,缓缓站起身子走到一颗柳树下,背着手说道:“你不知道这一切是为什么吗?”

废话,我当然不知道了,我知道还能问你吗?!

又是沉默... ...这个气氛让我感觉很不舒服。就在我受不了想说话的时候,Object突然说了一句:“带他去见空指针吧。”

“是,陛下!”突然,一个身穿红袍的枯瘦老者出现在我背后,把我吓了一跳。

我也不想再多生事端,直觉告诉我这里不是久留之地,虽然有点莫名其妙,我还是跟着红袍老者来走了。

... ...

“陛下,是他吗?”一个光头大汉的身影在半空若影若现的说道。

“还不能确定... 不过,留给我们的时间不多了,下一次的轮回就快来了。”

“轮回,又是轮回。我们还有希望吗?”大汉呢喃着,不知道是对自己说还是对中年人说。

中年人依然背着手,抬头望着漫天的柳絮说道:“这一世,该是个了断了。”

... ...

没多久,他把我带到一个房间门口,也是面无表情的说道:“进去吧,空指针就在里面。”

我挺住脚步,转过身问他:“你是谁?我们是不是见过?”

红袍老者怪异一笑:“也许吧,老夫IndexOutOfBoundsException,空指针便是我好友。”

这个名字可真长,我听说过他,据传闻他的实力也非常之强,可能不下于空指针,都是以诡异的出手角度著称,不过相比于空指针的大名,他好像更低调,难怪在皇宫当个老太监一般。

我也不在多想,点点头,走进了房间。刚进房间,我就看见一个一身白衣的身影背对着我,笔直的身影好像要冲破天际,身上的气势强大无比,至少在我见过的所有人里足以排进前三了。空指针,果然名不虚传!

我走到房间中央,环目四望才发现这好像是一座祠堂的样子,就在我还在打量四周之际,一道清冷的声音传到我的耳边:

“你身上的气息让我非常讨厌!”

他转过身来,我发现我根本看不清空指针长什么样子,他的脸好像打上了马赛克。听到他的话,我心里的疑惑更多了,我只是觉得他的气息让我感到非常熟悉,他的话让我有点莫名其妙。于是我试探道:

“你知道我是谁?”

听到我的话,他一步步走进我,在我身边闻了闻,这让我什么一紧,虽然我想搞清楚我身上的问题,但是我不是出卖肉体的人,我退后一步说:

“你想干嘛?”

空指针皱紧了眉头,仿佛自言自语道:“不对,不对,这是... 规则的气息?可是他明明身上没有任何能量波动。”

我见他好像魔怔了,仿佛在思考什么,于是迈步走到他刚才站立的地方看着前面,原来,这是他们的族谱!这里是异常的祠堂!

看完这张族谱,我恍然大悟,好像明白了什么。突然,我的脑袋里出现了一个冰冷的机器声音:“获取异常族谱,历练完成度+100。”

我Kao,系统,这是系统啊,我不禁内牛满面,啥任务系统啊,一点提示都没有,我赶紧喊道:

“系统,系统,还在吗?在线等,挺着急的。”可是没有任何回复!这啥破系统!就在我想破口大骂的时候,空指针看到我和个二傻子似的大呼小叫,突然一脸不可思议的对着我说:

“你明悟了规则?”

我愣了愣,嗯?难道我不是战5渣了?规则之力?好像是很高端的样子啊?

“撒豆成兵!”

“呼风!”

”唤雨!“

”临兵斗者皆阵列在前!“

一点反应都没有。。。啥玩意儿?还规则之力?九字真言都没用啊?

空指针好像都蒙了,他敲了敲太阳穴,无语的看着我说:

”你不是来找我的吗?说完你的问题,然后给我滚!“

对啊,这系统把我整的我都忘记我来干嘛的了,我赶紧说:

”你认识我对不对,你是不是觉得我有一种熟悉的感觉?我想知道我的来历!“

空指针又愣了愣,他看着我,沉默了一会儿,回道:“不知道!”

我有点奇怪,看他一脸便秘的表情应该是见过我的,他一定在撒谎,既然如此...

“那你告诉我你们有什么办法能在你们异常的攻击下防身吧?”

空指针大怒,刚想起身说话,空中突然传来一道声音:答应他的要求!

他冷哼一声,丢给我一本书,上面写着catch一个字,还有一块写着catch的令牌,冰冷的说到:“你想知道的都在这里了。”说完,拂袖而去。

我看着桌子上的这本书,想了想还是翻阅起来。

原来Exception 和它的儿子们,除了RuntimeException 一支,都叫作Checked Exception,我还能用catch令牌来对抗他们的攻击!包括空指针,以后我就不怕他们了!

可是,他为什么要给我,看他刚才的样子都想打我了,又突然给了我这些?还有他一直在说的规则之力又是什么?这座城市为什么又这么诡异?

转载链接:https://mp.weixin.qq.com/s/PDfd8HRtDZafXl47BCxyGg,作者:艾小仙


GitHub 上标星 10000+ 的开源知识库《二哥的 Java 进阶之路》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了,GitHub 上标星 10000+ 的 Java 教程

微信搜 沉默王二 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 222 即可免费领取。