Throwable分为Error,Exception
Error:程序无法处理的系统错误,编译器不做检查;此类错误一般表示代码运行时 JVM 出现问题。比如 OutOfMemoryError:内存不足错误; StackOverflowError:栈溢出错误。此类错误发生时,JVM 将终止线程
Exception:程序可以处理的异常,捕获后可能恢复;又分为检查性异常和非检查性异常。
两个根本的区别在于,检查性异常 必须在编写代码时,使用try catch捕获(比如:IOException异常)。非检查性异常在代码编写使,可以忽略捕获操作(例ArrayIndexOutOfBoundsException),这种异常是在代码编写或者使用过程中通过规范可以避免发生的。
RuntimeException运行时异常
不受检异常,不抛出或者捕获都会编译通过;但是实际运行后会被暴露出来。
throw 和 throws 的区别
throw 关键字用在方法内部,只能用于抛出一种异常,用来抛出方法或代码块中的异常 throws 关键字用在方法声明上,用来标识该方法可能抛出的异常列表。调用该方法的方法中必须包含可处理异常的代码,否则也要在方法签名中用 throws 关键字声明相应的异常
|