Exception和Error的区别
Exception和Error都属于Throwable的子类,在Java中只有Throwable及其子类才能被捕获或抛出。
Exception
Exception是程序正常运行中,可以预期的意外情况,并且可以通过try/catch进行捕获处理。Exception又分为运行时异常(Runtime Exception,编译能通过,但如果运行过程中出现这类未处理的异常,程序会终止运行)和受检查异常(Checked Exception ,要么用try/catch捕获,要么用throws字句抛出,否则编译不会通过。)
Error
Error是指突发的非正常情况,通常是不可恢复的,比如Java虚拟机内存溢出,诸如此类。
throw和throws的区别
throw
throw语句用在方法体内,表示抛出异常由方法体内的语句处理,执行throw一定是抛出了某种异常。
throws
throws语句用在方法声明的后面,该方法的调用者要对异常进行处理,throws代表可能会出现某种异常,并不一定会发生这种异常。