数组越界(什么叫数组越界)

初级难度学习时间30分钟适合人群从零开始开发语言Java 语言(一种计算机语言,尤用于创建网站)开发环境JDK v11IntelliJ IDEA v2018.3

初级难度

学习时间

30分钟

适合人群

从零开始

开发语言

Java 语言(一种计算机语言,尤用于创建网站)

开发环境JDK v11IntelliJ IDEA v2018.3提示

这个教学属于系列教学,内容是一致的。本章使用的内容在教学前已经详细讲解过了。

1.什么是异常?

在回答这个问题之前,我们先来看一个节目。

数组越界是什么意思(数组越界访问)插图

上面的过程非常简单,就是先计算1除以0的值,将其值存储在X变量中,然后打印X变量的值。

这里有的同学可能会问,除数怎么会是0呢?这显然是错误的。

当然,除数是0。这个表达写的没错,算的肯定不对。而且这个错误是我故意造成的,只是为了让你看看电脑遇到错误会怎么处理。

运行程序并执行结果:

错误:

文本:

线程“main”中的异常Java . lang . arithmetic exception:/by zero

大体上。main . main(Java:12)

从运行结果来看,当计算机遇到错误时,当然错误发生在Java程序中,程序会停止运行并打印错误信息。

呃?怎么知道程序停止运行,没有继续运行?

好了,各位,让我们分两部分来看这个错误:

第1部分:错误消息——哪里出错了?

线程“main”中的异常Java . lang . arithmetic exception:/by zero

第2部分:错误的位置-怎么了?

大体上。main . main(Java:12)

要回答以上问题,只看第二部分。显然,它告诉我们错误出在Main.java的这个文档的第12行:

大家都看到了吗?这是我们写1除以0的代码的那一行。他告诉我们这一行有问题。怎么了?下一个问题马上回答。先回答程序遇到问题时是否停止运行,没有继续执行。

请遵守第14行:

你看到了什么?不是output语句,这行代码是打印x的值,我们来看看程序执行的结果。你打印X的值吗?看一看:

我们发现x的值没有打印出来,说明程序遇到错误就停止运行,没有继续执行。

好了,有同学想问,我们已经知道哪里出了问题,怎么才能看出哪里出了问题?

请回顾一下我们刚刚描述的:错误的第一部分和错误的第二部分。如果你想知道错误在哪里,就去看第二部分。如果您想知道错误是什么,请转到错误的第一部分。

接下来,让我们看看错误的第一部分:

线程“main”中的异常Java . lang . arithmetic exception:/by zero

翻译成中文是:

线程“main”中的异常Java . lang . arithmetic exception:/by zero

单词解释:

例外:例外。

螺纹:螺纹。

其中,例外是本章的内容,要了解它。Thread,也就是thread,后面的章节会讲到。我没学线头。先不说这个,主要说说这个例外。

我们上面程序中的异常是什么?

是java.lang.ArithmeticException这是一个异常类。

什么是例外?

在Java中,我们用类来描述程序的异常(或错误)。这样的类称为异常类(异常类型)。

Java.lang.ArithmeticException用来描述什么异常?

Java.lang.ArithmeticException用于描述算术异常。比如除数是0。

消息中“java.lang .算术异常:/by zero”的冒号后面是什么?

是错误的理由。/乘零表示除数为0。

好了,程序分析到此结束。接下来,我们来看看异常的定义。

2.异常的定义

异常是在程序执行过程中发生的事件,它会破坏程序指令流的正常运行。

让我们分两部分来解释这个定义。

第一句话:异常是程序执行过程中发生的事件。

也就是说,即使你的程序有异常,只要你不运行它,异常就不会出现。这个很好理解。

第二句话:会破坏程序指令的正常流动。

这也很好解释。在上一节中,我们也意识到,当第12行代码出现错误时,这个异常已经破坏了程序的正常运行过程,它会导致程序停止,不能继续执行。也就是说,它破坏了正常的程序指令流。

有人问,什么是程序指令?

你可以理解为一行代码。

在本章中,我们对异常有一个简单的了解。在下一章,我们将学习如何处理异常。异常处理后,程序不会停止运行。

3.常见的异常

在我们的日常开发中,最常见的异常是空指针异常和数组下标越界异常。

就目前而言,以下只是对两种例外情况的演示,不做详细处理。详细处理它们的任务将放在下一章。

演示:

请创建空指针异常。

请观察程序的运行结果。

代码:

主要类别:

结果:

错误:

文本:

线程“main”中的异常java.lang.NullPointerException

大体上。Main.main(Main.java:14)

从运行结果可以看出,程序产生了NullPointerException,即空指针异常。

空指针异常的原因是引用的对象为空。

如何处理这个异常将在下一章详细解释。

接下来,让我们演示一个数组下标越界异常。

演示:

请生成数组下标越界异常。

请观察程序的运行结果。

代码:

主要类别:

结果:

错误:

文本:

线程“main”Java . lang . arrayindexoutofboundsexception中的异常:索引3超出长度1的界限

大体上。Main.main(Main.java:14)

从运行结果可以看出,程序产生了ArrayIndexOutOfBoundsException,即数组下标越界异常。

数组下标越界异常的原因是访问了超过数组长度-1的下标。

如何处理这个异常将在下一章详细解释。

总结异常是在程序执行期间发生的事件,它会破坏程序指令的正常流程。在Java中,我们把程序发生的异常(或发生的错误)用类来描述,这样的类被称为异常类(异常类型)。

至此,Java中理解异常的相关内容的讲解告一段落。更多内容请持续关注。

答疑

如果你有问题或者想了解更多前沿技术,请在下面留言或者评论,我会为你解答。

下一章

《全栈2019》Java异常第二章:如何处理异常?

学习小组

加入同步学习群,一起交流,共同进步。

方式一:关注头条号Gorhaf,私信“Java学习小组”。方式二:关注公众号Gorhaf,回复“Java学习小组”。全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不容易。未经允许不得转载!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/267752.html

发表回复

登录后才能评论