Java中的异常主要分为Error和Exception
Error
- 指Java程序运行错误,如果程序在启动时出现Error,则启动失败;如果程序在运行过程中出现Error,则系统将退出程序。出现Error是系统的内部错误或资源耗尽,Error不能在程序运行过程中被动处理,一旦出现Error,系统能做的只有记录错误的原因和安全终止。
Exception
- 指Java程序运行异常,在运行中的程序发生了程序员不期望发生的事情,可以被Java异常处理机制处理。Exception也是程序开发中异常处理的核心,可分为RuntimeException(运行时异常) 和CheckedException(检查异常),如下图所示:
- RuntimeException(运行时异常):指在Java虚拟机正常运行期间抛出的异常,RuntimeException可以被捕获并处理,如果出现此情况,需要抛出异常或者捕获并处理异常。常见的有NullPointerException、ClassCastException、ArrayIndexOutBoundsException等。
- CheckedException(检查异常):指在编译阶段Java编译器检查CheckedException异常,并强制程序捕获和处理此类异常,要求程序在可能出现异常的地方通过try catch语句块捕获异常并处理异常。常见的有由于I/O错误导致的IOException、SQLException、ClassNotFoundException等。该异常通常由于打开错误的文件、SQL语法错误、类不存在等引起。
追问1:异常的处理方式?
- 异常的处理方式有抛出异常和使用try-catch语句块捕获异常两种方式。
- 抛出异常:遇到异常时不进行具体处理,直接将异常抛给调用者,让调用者根据情况处理。抛出异常的三种形式:throws、throw和系统自动抛出异常。其中throws作用在方法上,用于定义方法可能抛出的异常;throw作用在方法内,表示明确抛出一个异常。
- 使用try-catch捕获并处理异常:使用try-catch捕获异常能够有针对性的处理每种可能出现的异常,并在捕获到异常后根据不同的情况做不同的处理。其使用过程比较简单:用try-catch语句块将可能出现异常的代码包起来即可。