“全栈2019”Java异常第一章:认识异常「建议收藏」

“全栈2019”Java异常第一章:认识异常「建议收藏」难度初级学习时间30分钟适合人群零基础开发语言Java开发环境JDKv11IntelliJIDEAv2018。

大家好,欢迎来到IT知识分享网。

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.什么是异常?

在回答这个问题之前,我们先来看一段程序。

“全栈2019”Java异常第一章:认识异常「建议收藏」

上述程序很简单,就是先计算1除以0的值,将其值存储到x变量中,然后打印x变量的值。

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

当然,除数为0,这个表达式写法上没错,但是在计算上肯定是错误的,而且这个错误是我故意造成的,就是想让大家看看,当计算机遇到错误时,它会怎么处理。

运行程序,执行结果:

“全栈2019”Java异常第一章:认识异常「建议收藏」

错误信息:

“全栈2019”Java异常第一章:认识异常「建议收藏」

文字版:

Exception in thread “main” java.lang.ArithmeticException: / by zero

at main.Main.main(Main.java:12)

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

咦?你怎么知道程序是停止运行而且没有往下继续运行的呢?

好,各位,咱们把这段错误分两部分来看:

第一部分:错误信息-出的什么错?

Exception in thread “main” java.lang.ArithmeticException: / by zero

第二部分:错误位置-错在什么地方?

at main.Main.main(Main.java:12)

回答上述问题,只需看第二部分,很明显,它告诉我们,错误出在Main.java这个文件的第12行:

“全栈2019”Java异常第一章:认识异常「建议收藏」

大家看到了吗?是我们写1除以0的代码所在的行。他就告诉我们这一行出了问题,出了什么问题?马上下一个问题来解答,先回答程序是不是遇到问题就停止运行了,没有继续往下执行。

请大家观察第14行:

“全栈2019”Java异常第一章:认识异常「建议收藏」

看到了什么?是不是一个输出语句,此行代码是打印x的值。我们再来看程序执行结果中,有打印x的值吗?来看看:

“全栈2019”Java异常第一章:认识异常「建议收藏」

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

好啦,有同学就想问,我们已经知道哪里出错了,怎么来看出的是什么错呢?

请大家回头看看我们刚刚描述的:错误的第一部分和错误第二部分。想要知道错误出在哪里,就去看第二部分,想要知道错误是什么,就去看错误的第一部分。

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

Exception in thread “main” java.lang.ArithmeticException: / by zero

翻译成中文就是:

线程“main”中的异常java.lang.ArithmeticException:/ by zero

单词解释:

Exception:异常。

thread:线程。

其中,Exception就是我们本章的内容,来认识它。thread,也就是线程,后面章节马上会出教学。线程没学,咱们先不管,主要来说说这个Exception(异常)。

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

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

异常类是什么?

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

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

java.lang.ArithmeticException用来描述算术异常。比如:除数为0。

错误信息中“java.lang.ArithmeticException: / by zero”冒号后面的是什么?

是错误原因。/ by zero是除数为0了的意思。

好啦,程序就先分析到这里,接下来,我们来看看异常的定义。

2.异常的定义

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

这段定义,我们来分两部分解释。

第一句:异常是在程序执行期间发生的事件

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

第二句:它会破坏程序指令的正常流程

这个也很好解释,上一小节中,我们也体会到了,当第12行代码发生错误时,这个异常已经破坏了程序的正常运行流程,它会导致程序停止,不再继续往下执行。也就是破坏了程序指令的正常流程。

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

你可以把它理解为一行一行的代码。

本章咱们简单的认识了异常,下一章我们来学习遇到异常,该如何处理它?异常被处理后,程序就不会停止运行。

3.常见的异常

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

下面暂时只是演示两种异常,不做详细处理,详解处理他们的任务放在下一章内容中。

演示:

请制造一个空指针异常。

请观察程序运行结果。

代码:

Main类:

“全栈2019”Java异常第一章:认识异常「建议收藏」

结果:

“全栈2019”Java异常第一章:认识异常「建议收藏」

错误信息:

“全栈2019”Java异常第一章:认识异常「建议收藏」

文字版:

Exception in thread “main” java.lang.NullPointerException

at main.Main.main(Main.java:14)

从运行结果来看,我们可以看到程序产生了NullPointerException,也就是空指针异常。

空指针异常产生原因就是引用的对象为NULL。

至于怎么处理该异常下一章会有详细的讲解。

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

演示:

请制造一个数组下标越界异常。

请观察程序运行结果。

代码:

Main类:

“全栈2019”Java异常第一章:认识异常「建议收藏」

结果:

“全栈2019”Java异常第一章:认识异常「建议收藏」

错误信息:

“全栈2019”Java异常第一章:认识异常「建议收藏」

文字版:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 1

at main.Main.main(Main.java:14)

从运行结果来看,我们可以看到程序产生了ArrayIndexOutOfBoundsException,也就是数组下标越界异常。

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

至于怎么处理该异常下一章会有详细的讲解。

总结

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

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

答疑

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

下一章

“全栈2019”Java异常第二章:如何处理异常?

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

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

“全栈2019”Java异常第一章:认识异常「建议收藏」

版权声明

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

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

(0)
上一篇 2023-03-08 16:59
下一篇 2023-03-08 17:59

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信