检查性异常和非检查性异常

从网上查的资料进行整理

一、异常

1、所有的异常类是从 java.lang.Exception 类继承的子类。Exception 类是 Throwable 类的子类。

2、所有的非检查性异常都继承自java.lang.RuntimeException。

3、所有的检查性异常都继承自java.lang.Exception,是RuntimeException以外的异常;

二、区别:

1、检查性异常编译器要检查这类异常,检查的目的一方面是因为该类异常的发生难以避免,另一方面就是让开发者去解决掉这类异常,所以称为必须处理(try ...catch)的异常。

如果不处理这类异常,集成开发环境中的编译器一般会给出错误提示。

如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

2、非检查性异常编译器不会检查这类异常,不检查的则开发者在代码的编辑编译阶段就不是必须处理,这类异常一般可以避免,因此无需处理(try ...catch)。

如果不处理这类异常,集成开发环境中的编译器也不会给出错误提示。

三、举例

1、常见的运行时异常:空指针异常(NullPointerException)、除零异常(ArithmeticException)、数组越界异常(ArrayIndexOutOfBoundsException)等;

2、常见的检查性异常:输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)等。

猜你喜欢

转载自www.cnblogs.com/lqyy/p/9398874.html
今日推荐