您的位置 首页 java

自学Java第28天:什么叫异常?

自学Java第28天:什么叫异常?

【Java】基础28:什么叫异常?

闪退,我们在使用手机或者电脑的过程中,有时会遇到这种情况,这也是用户最讨厌的情况之一。

一般一个开发软件,如果时常出现闪退的话,用户体验是非常差的。

所以要尽可能避免这种情况的发生。

那为什么会闪退呢?

就是程序它遇到了问题,又没有及时地处理,便只有崩溃了。而这种情况,便是异常。

在Java世界里面,异常指的是程序在执行过程中,出现的非正常的情况,最终会导致 jvm 的非正常停止。

它本身就是Java里的一个类,最上层的父类是 Throwable ,其下有两个子类: Error与Exception

一、Error

Error:错误的意思,无法通过处理来解决的错误。

比如说我创建了一个数组,给它定义的长度为10亿,理论上是可以的,Java又没有要求说数组长度不能有10亿。但是,运行下看看:

自学Java第28天:什么叫异常?

OutOfMemoryError:内存溢出。

也就是说,我的电脑内存不够用了,因为创建数组是需要内存的,所以它就报出错误。

这就好比,我们电脑下了一款非常牛逼的单机游戏。

运行的时候发现电脑配置不够,动不动就崩。

电脑又没法拓展,该怎么办?

解决这个问题只有一个方法:换一台电脑,别无他法。

与之对应的,在Java程序里面若是遇到这样的问题,就只能乖乖地修改代码了。

二、Exception

我们平时常说的异常指的就是它,因为它是可以通过程序员的处理将其解决的,所以接触的更加多一点。

比较常见的如下:

自学Java第28天:什么叫异常?

ArrayIndexOutOfBoundsException:数组越界异常。

不要看它这么长好像很复杂的样子,其实拆开来看单词都很简单:Array数组;index索引;OutOfBounds超出界限;Exception异常。

合在一起就是数组的索引超出了界限异常,也就是数组越界异常。

那么出现了异常Java里面是如何处理的?

我们举一个抛绣球的例子来说明下jvm处理异常流程。

好,现在有一个异常,被Java 虚拟机 知道了。

  • 这个异常就相当于绣球。
  • Java虚拟机就相当于古代抛绣球的女子。

然后就抛绣球,这时候一个人接到了绣球,但是他发现不想娶这个女子,就继续抛给别人,接到的人也不想娶,就一路抛,最后又抛回到了那个女子的手中。

于是女子非常的生气,愤怒地骂了几句就走了。

在Java世界里面:出现了异常,然后都不处理,一直往前抛,最终抛给了Java虚拟机。

于是Java虚拟机非常地生气,打印错误信息,终止了程序。

程序终止 这件事情在开发过程中是能不出现就不要出现的。

这也很好理解,你想啊,古代女子若是抛绣球都没人接,多丢人呀,她这辈子大概率不就完了么?

所以出现了异常要处理异常。

当然,我举的这个例子并不准确,只是对于刚接触Java没多久的人来说,可能更好理解。

三、异常的处理

一定要搞清楚,程序员处理异常,不是说这种类型的问题不会出现了,而是说出现了问题要保证程序不能崩溃。

因为用户是不确定的,就比如说用户银行卡里只有10块钱,它提现时硬是要输入10000块,这就会出现异常。

  • 如果是Java虚拟机来处理,程序就直接崩溃了呀,这样显然是不行的。
  • 而程序员要将其处理成:我们抛出信息,提示用户:“卡内余额不足”,保证程序不会停止运行。

这就是异常的处理,不是说问题再也不会出现了,而是说出现了问题要保证程序不能崩溃,并提示用户。

那么如何处理异常?

方式一:throw

自学Java第28天:什么叫异常?

因为Java里面异常本身就是一个类,所以创建对应的异常对象,再抛出说明。

方式二:throws

关键字 throws 运用于方法上,声明方法内部可能产生异常,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常)。

自学Java第28天:什么叫异常?

throws写在方法名后面,后面可以接多个异常,用 逗号 隔开。

throws本身并没有处理异常 ,而是提示让方法调用者我这可能有异常,谁调用我得处理,并且也不是说一定就会出现异常,也有可能没有。

throws这个关键字就是警示提醒的作用,并没有处理异常。

方式三:try…catch

真正处理异常了的其实就两种方式:

  • throw+创建异常对象,并说明。
  • try…catch处理异常。
自学Java第28天:什么叫异常?

  • try:可能会产生异常的代码。
  • catch:用来进行某种异常的捕获,若是出现了括号中的异常,就抛出异常并描述信息,可以多个catch
  • finally:无论异常是否发生,都会执行。

以上就是对于异常的一些基本说明,暂时先就到这儿,明天再继续深入研究异常。

总结:

文章来源:智云一二三科技

文章标题:自学Java第28天:什么叫异常?

文章地址:https://www.zhihuclub.com/197041.shtml

关于作者: 智云科技

热门文章

网站地图