非常是指顺序运转历程当中发作的毛病,它涌现在顺序运转历程当中。
Java中的非常(Exception)又称为破例,是一个在顺序实行时期发作的事宜,它中断正在实行的顺序的平常指令流。为了能够实时有效地处置惩罚顺序中的运转毛病,必需运用非常类。【引荐进修:java课程】
非常发作的缘由及运用准绳
在 Java 中一个非常的发作,主要有以下三种缘由:
Java 内部毛病发作非常,Java 虚拟机发作的非常。
编写的顺序代码中的毛病所发作的非常,比方空指针非常、数组越界非常等。这类非常称为未检査的非常,平常需要在某些类中集合处置惩罚这些非常。
经由历程 throw 语句手动生成的非常,这类非常称为检査的非常,平常用来示知该要领的挪用者一些必要的信息。
Java 经由历程面向对象的要领来处置惩罚非常。在一个要领的运转历程当中,假如发作了非常,则这个要领会发作代表该非常的一个对象,并把它交给运转时的体系,运转时体系寻觅响应的代码来处置惩罚这一非常。
我们把生成非常对象,并把它提交给运转时体系的历程称为拋出(throw)非常。运转时体系在要领的挪用栈中查找,直到找到能够处置惩罚该范例非常的对象,这一个历程称为捕捉(catch)非常。
Java 非常强迫用户斟酌顺序的强壮性和安全性。非常处置惩罚不该用来掌握顺序的平常流程,其主要作用是捕捉顺序在运转时发作的非常并举行响应处置惩罚。编写代码处置惩罚某个要领能够涌现的非常,可遵照以下三个准绳:
在当前要领声明中运用 try catch 语句捕捉非常。
一个要领被掩盖时,掩盖它的要领必需拋出雷同的非常或非常的子类。
假如父类抛出多个非常,则掩盖要领必需拋出那些非常的一个子集,而不能拋出新非常。
非常范例
在 Java 中一切非常范例都是内置类 java.lang.Throwable 类的子类,即 Throwable 位于非常类条理构造的顶层。Throwable 类下有两个非常分支 Exception 和 Error,如图 1 所示。
Throwable 类是一切非常和毛病的超类,下面有 Error 和 Exception 两个子类离别示意毛病和非常。个中非常类 Exception 又分为运转时非常和非运转时非常,这两种非常有很大的区分,也称为不搜检非常(Unchecked Exception)和搜检非常(Checked Exception)。
Exception 类用于用户顺序能够涌现的非常状况,它也是用来建立自定义非常范例类的类。
Error 定义了在一般环境下不愿望被顺序捕捉的非常。Error 范例的非常用于 Java 运转时由体系显现与运转时体系自身有关的毛病。客栈溢出是这类毛病的一例。
本章不议论关于 Error 范例的非常处置惩罚,由于它们一般是灾难性的致命毛病,不是顺序能够掌握的。本章接下来的内容将议论 Exception 范例的非常处置惩罚。
运转时非常都是 RuntimeException 类及其子类非常,如 NullPointerException、IndexOutOfBoundsException 等,这些非常是不搜检非常,顺序中能够挑选捕捉处置惩罚,也能够不处置惩罚。这些非常平常由顺序逻辑毛病引发,顺序应当从逻辑角度尽量防止这类非常的发作。
非运转时非常是指 RuntimeException 之外的非常,范例上都属于 Exception 类及其子类。从顺序语法角度讲是必需举行处置惩罚的非常,假如不处置惩罚,顺序就不能编译经由历程。如 IOException、ClassNotFoundException 等以及用户自定义的 Exception 非常,平常状况下不自定义搜检非常。表 1 列出了一些罕见的非常范例及它们的作用。
以上就是java中什么是非常?的细致内容,更多请关注ki4网别的相干文章!