我们在java学习中要不断积累对各种异常的处理方法,面试中多问到的所谓开发经验、项目经验有大半都涉及到对异常的处理经验。所谓程序都是调处来的不是写出来的就是这个道理,只有在学习过程中积攒扎实的编程基础,才能在程序报错时手到拈来。
1、Error(unchecked异常)
是程序无法处理的错误,通常发生于虚拟机自身,表示运行应用程序中较严重问题。例如,Java虚拟机运行错误(VirtualMachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。
2、Exception(checked异常)
必须处理的异常:Checked异常是Java特有的,在java设计哲学中,Checked异常被认为是可以被处理或者修复的异常,所以Java程序必须显式处理Checked异常,当我们使用或者出现Checked异常类的时候,程序中要么显式try-catch捕获该异常并修复,要么显式声明抛出该异常,否则程序无法通过编译。
3、Error和Exception的联系
继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。
二、checked异常和unchecked异常
Exception又分为运行时异常(RuntimeException)和受检查的异常(CheckedException),Error和RuntimeException及其子类称为未检查异常(Uncheckedexception)
其它异常成为受检查异常(CheckedException)。
RuntimeException:
其特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try……catch捕获,也没有用throws抛出,还是会编译通过,如除数为零的ArithmeticException、错误的类型转换、数组越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。
受检查的异常(IOException等):这类异常如果没有try……catch也没有throws抛出,编译是通不过的。这类异常一般是外部错误,例如文件找不到、试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误
以上就是【尚学堂】小编努力整理出的内容,希望对大家的学习有所帮助哦。更多课程相关资讯信息请定期关注我们..