public class D {
void myMethod() {
try {
throw new IllegalArgumentException();
} catch (NullPointerException npex) {
System.out.println("NullPointerException thrown ");
} catch (Exception ex) {
System.out.println("Exception thrown ");
} finally {
System.out.println("Done with exceptions ");
}
System.out.println("myMethod is done");
}
public static void main(String args[]) {
D d = new D();
d.myMethod();
}
我不明白怎么来的也被打印"myMethod is done"
。抛出异常,所以它假设找到匹配的catch并执行finally块,但它继续执行myMethod
方法并打印myMethod is done
,它不是finally块的一部分。为什么?
感谢您的澄清! – Numerator