云骑士一键装系统-简单一键在线装机工具,一键备份还原功能让系统维护更方便!
BIOS设置 win10教程 win7教程 U盘教程 xp教程 win8教程 电脑故障 电脑资讯 手机教程 软件教程 游戏攻略
当前位置:云骑士 > 使用教程 > 电脑资讯 > nullpointerexception

nullpointerexception

文案作者: 骑士
2019-07-25 10:34:26
播放量:

java语言与其他编程语言不同,它有严格的异常处理机制,如果需要抛出异常的代码块中没有捕获异常,程序将不会成功编译,换言之:未使用异常捕获、异常捕获方式不正确等,都将导致代码不能被jvm编译。

java标准库,内建了大量的异常处理类,这些类以Throwable 设计为最顶层类。常见的java异常类有:IOException, SocketTimeoutException, UnknownHostException, MalformedURLException、NullPointerException等。

nullpointerexception

java怎么处理异常?

try{//可能出现异常的代码块} catch (Exception e) { //出现指定的异常时会进入该代码块。 //捕获到异常后处理异常的代码块} finally { //可选 //不管是否触发了异常,都将被执行}

nullpointerexception(1)

让人头痛的NullPointerException(空指针异常)

什么时候出现NullPointerException?从上面的java异常结构可以看出NullPointerExcetion继续自RuntimeException,即表示这是一种运行时才会触发的异常。

当程序运行时,对象未初始化或为空时,NullPointerException就出现了,写Java程序时要特别注意这个异常,该异常不捕获,直接导致整个程序崩溃。

因此,我们要很小心,在对象可能为空的情况下,要积极做null检查,不然,NullPointerException就在那等着我们了。

如何防范NullPointerException?

nullpointerexception(2)

java是纯粹面向对象的编程语言,一切都是对象。对象就有方法和属性,在为空的对象中调用方法就会出现NullPointerException,一个很简单的例子:

public String getName(Cat c){return c.name;}

这段代码用来获取猫(Cat)对象:c的姓名,这里的c为null时,100%会出现空指针错误了。保险的作法是在执行name方法前先检查u是否为空?

改一下:

public String getName(Cat c){if( c == null ){ return "is null"; } return c.name;}

这样就不会导致出现空指针异常了,一个经验,对于那些可能为空的对象进行操作时,一定要检查是否为空,可避免空指针异常。java 空指针错误几乎每个人都栽过,至少我就曾在这上面吃了不少苦,写过一个网络程序,是获取网页的,大概在进行了3个小时时,程序崩溃了,多处出现了NullPointerException,后来在一段摸索后,对可能出现该异常的地方进行异常捕获,之后就正常了。java 官方也知道这个问题,于是在java 8 中引入了 OPtional 类,专门用来解决null的安全问题,上面的代码用Optional改写成:

public static String getName(Cat s){Optional cat = Optional.ofNullable(s); if(!cat.isPresent()){ return "is Null"; } return cat.get().name;}

代码依然这么多,Optional可以有更简洁的写法,来试一下:

public static String getName(Cat s){return Optional.ofNullable(s).map(sl->sl.name).orElse("is Null");}

这才是Optional的本意,简洁易懂,链式操作,用Optional避免了if判断,简洁了不少。

如何正确的使用键盘
图文
如何正确的使用键盘
很多朋友都想要知道电脑键盘图的方法是什么,其实电脑键盘图的方法是非常简单的,如果大家想要学习的话,当然会教大家电脑键盘图的方法,下面就给...
阅读:291 发布时间:2020-07-27
电脑连接U盘后无法显示怎么办
图文
电脑连接U盘后无法显示怎么办
点击开始,运行,输入regedit,回车,依次展开HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUSBSTOR,在右侧中找到start,并双击打开,修改其数值数据为3,并点击确...
阅读:70 发布时间:2021-05-07
微商怎么做长图详情页
图文
微商怎么做长图详情页
以甲虫设计为例,打开微信,点击搜索,输入甲虫设计,关注公众号,点击邀请函,选择甲虫设计,我的,登录,点击长页,选择电商微商,选择模板,点...
阅读:201 发布时间:2021-09-18
Win10休眠就断网然后连不上
图文
Win10休眠就断网然后连不上
1、点击左下角搜索图标,打开控制面板,点击系统,选择设备管理器。2、打开网络适配器,鼠标右键点击笔记本电脑使用的网卡驱动,选择属性。3、打开...
阅读:200 发布时间:2022-05-15
免费硬碟复制软体EASEUS Disk Copy
图文
免费硬碟复制软体EASEUS Disk Copy
EASEUS Disk Copy是免费硬碟复制软体,可以让我们将整颗硬碟或分割区的资料复制到另一颗硬碟。EASEUS Disk Copy是采用1比1的方式复制硬碟,不能自由调整分割区...
阅读:124 发布时间:2022-11-29
进入系统后黑屏
进入系统后黑屏
浏览:8127
2019-11-11
电脑网速慢是什么原因
电脑网速慢是什么原因
浏览:18526
2018-07-23
戴尔笔记本重装系统
戴尔笔记本重装系统
浏览:23598
2020-10-15
没光驱怎么重装电脑系统
没光驱怎么重装电脑系统
浏览:16052
2020-10-19
东芝笔记本重装系统教程
东芝笔记本重装系统教程
浏览:13299
2020-06-24

客服二维码

邮箱:toplearningteam#gmail.com (请将#换成@)

Copyright 2013-2020 云骑士( https://www.yunqishi.net/ ) 版权所有 All Rights Reserved   鄂ICP备2023010145号-1