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


从网上查的资料进行整理

一、异常

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)等。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM