Java入门

检查性、运行时异常

2022-04-27  本文已影响0人  朱兰Juran

异常类型

在Java中,有两种异常类型,分别是检查性异常和运行时异常(又叫非检查异常)。

主要区别在于检查性异常在编译时被检查,而在运行时检查未经检查的异常。

检查异常是运行时异常以外的异常, 也是Exception及其子类, 这些异常从程序的角度来说是必须经过捕捉检查处理的, 否则不能通过编译. 如IOException、SQLException等

运行时异常都是RuntimeException类及其子类, 如 NullPointerException、IndexOutOfBoundsException等, 这些异常是不检查的异常, 是在程序运行的时候可能会发生的, 所以程序可以捕捉, 也可以不捕捉. 这些错误一般是由程序的逻辑错误引起的, 程序应该从逻辑角度去尽量避免.

正如在上一个小节中所提到的,Thread.sleep()抛出一个InterruptedException。这是一个检查性异常的例子。在处理异常之前,你的代码将不会编译。如下图所示:

InterruptedException

代码如下:

public class MyJavaClass {

  public static void main(String[] args) {

    try {

      Thread.sleep(1000);

    } catch (InterruptedException e) {

      // 其余代码

    }

  }

}


我们在之前的小节中,有遇到过运行时检查未经检查的异常例子。

下面是一个例子(尝试除以0):

public class MyJavaClass {

  public static void main(String[] args) {

    int value = 5;

    value = value / 0;

  }

}

/*

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

  at MyJavaClass.main(MyJavaClass.java:4)

*/

上一篇 下一篇

猜你喜欢

热点阅读