正确答案
(1)如果程序中产生了异常,那么会自动的由JVM根据异常的类型,实例化一个指定异常类的对象;
(2)如果这个时候程序中没有任何异常处理操作,则这个异常类的实例化对象将交给JVM进行处理,而JVM的默认处理方式就是进行异常信息的输出,而后中断程序执行;
(3)如果程序中存在了异常处理,则会由try语句捕获产生的异常类对象;
(4)与try之后的每一个catch进行匹配,如果匹配成功,则使用指定的catch进行处理,如果没有匹配成功,则向后面的catch继续匹配,如果没有任何的catch匹配成功这个时候将交给JVM执行默认处理;
(5)不管是否有异常都会执行finally程序,如果此时没有异常,执行完finally,则会继续执行程序中的其他代码,如果此时有异常没有处理(没有一个catch可以满足),那么也会执行finally,但是执行完finally后,将默认交给JVM进行异常的信息输出,并且程序中断。