1.测试demo
输出结果:
2.区别
throws:系统自动将异常抛出给上层调用者,由上层调用者来处理相关异常,如果上层调用者没有相关处理机制,则有JVM使用默认方式处理:输出运行异常,中断程序执行
try-catch:try中存放可能会产生异常的操作,如果发生异常由try进行捕获;捕获到异常后由后面的catch进行异常处理,如果第一个catch没有匹配成功,则交给第二个catch匹配,如果都没有成功匹配,那么交给JVM默认处理:输出运行异常,中断程序执行
e:生成的异常实例化对象,通过printStackTrace()可以打印详情
finally:无论catch是否成功匹配,finally中的语句都会执行,针对与没有catch的情况,finally执行完之后交给JVM默认处理:输出运行异常,中断程序执行
总结:
我们把生成异常对象并把它提交给运行时系统的过程称之为异常的抛出(throw)。
运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止,这一过程称之为异常的捕获(catch)。