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


Java▲自学Java第28天:什么叫异常?
文章图片
Java▲自学Java第28天:什么叫异常?
文章图片
Java▲自学Java第28天:什么叫异常?
文章图片
Java▲自学Java第28天:什么叫异常?

【Java】基础28:什么叫异常?
闪退 , 我们在使用手机或者电脑的过程中 , 有时会遇到这种情况 , 这也是用户最讨厌的情况之一 。
一般一个开发软件 , 如果时常出现闪退的话 , 用户体验是非常差的 。
所以要尽可能避免这种情况的发生 。
那为什么会闪退呢?
就是程序它遇到了问题 , 又没有及时地处理 , 便只有崩溃了 。 而这种情况 , 便是异常 。
在Java世界里面 , 异常指的是程序在执行过程中 , 出现的非正常的情况 , 最终会导致JVM的非正常停止 。
它本身就是Java里的一个类 , 最上层的父类是Throwable , 其下有两个子类:Error与Exception 。
一、ErrorError:错误的意思 , 无法通过处理来解决的错误 。
比如说我创建了一个数组 , 给它定义的长度为10亿 , 理论上是可以的 , Java又没有要求说数组长度不能有10亿 。 但是 , 运行下看看:
OutOfMemoryError:内存溢出 。
也就是说 , 我的电脑内存不够用了 , 因为创建数组是需要内存的 , 所以它就报出错误 。
这就好比 , 我们电脑下了一款非常牛逼的单机游戏 。
运行的时候发现电脑配置不够 , 动不动就崩 。
电脑又没法拓展 , 该怎么办?
解决这个问题只有一个方法:换一台电脑 , 别无他法 。
与之对应的 , 在Java程序里面若是遇到这样的问题 , 就只能乖乖地修改代码了 。
二、Exception我们平时常说的异常指的就是它 , 因为它是可以通过程序员的处理将其解决的 , 所以接触的更加多一点 。
比较常见的如下:
ArrayIndexOutOfBoundsException:数组越界异常 。
不要看它这么长好像很复杂的样子 , 其实拆开来看单词都很简单:Array数组;index索引;OutOfBounds超出界限;Exception异常 。
合在一起就是数组的索引超出了界限异常 , 也就是数组越界异常 。
那么出现了异常Java里面是如何处理的?
我们举一个抛绣球的例子来说明下jvm处理异常流程 。
好 , 现在有一个异常 , 被Java虚拟机知道了 。

  • 这个异常就相当于绣球 。
  • Java虚拟机就相当于古代抛绣球的女子 。
然后就抛绣球 , 这时候一个人接到了绣球 , 但是他发现不想娶这个女子 , 就继续抛给别人 , 接到的人也不想娶 , 就一路抛 , 最后又抛回到了那个女子的手中 。
于是女子非常的生气 , 愤怒地骂了几句就走了 。
在Java世界里面:出现了异常 , 然后都不处理 , 一直往前抛 , 最终抛给了Java虚拟机 。
于是Java虚拟机非常地生气 , 打印错误信息 , 终止了程序 。
程序终止这件事情在开发过程中是能不出现就不要出现的 。
这也很好理解 , 你想啊 , 古代女子若是抛绣球都没人接 , 多丢人呀 , 她这辈子大概率不就完了么?
所以出现了异常要处理异常 。
当然 , 我举的这个例子并不准确 , 只是对于刚接触Java没多久的人来说 , 可能更好理解 。


推荐阅读