所以我只是在学习Java中的异常,我正在看一个例子,但它要么错了,要么我仍然不理解它。
以下是代码:
command1;
try {
command2;
command3;
try {
command4;
command5;
} catch (MyException e) { command6; }
command7;
} catch (IOException e) {
command8;
} catch (OwnException e) {
command9;
} finally {
command10;
}
command11;
然后它写下了哪些命令将在不同的场景中运行,但是command7几乎从不运行,只有在一种情况下,如果在command4期间发生MyException。
不是吗?我只是在学习,所以我在这里错了,但老师的笔记也错了,这不是真的吗如果} after command6之后是command7?所以command6和command7应该在一个catch块中解释为什么command7永远不会被执行,只有在这种情况下(我猜它也会在command5期间发生MyException时执行,但并不是每个场景都在音符)。
答案 0 :(得分:2)
command7;
,command2;
或可能command3;
导致command6;
或IOException
,否则 OwnException
应每次都有效。显然,command7;
如果程序从任何无法解决的程序崩溃,将无法运行,但除此之外不应该解决它。如果command11;
运行且command8;
或command9;
都未运行,那么command7;
应该已经运行。如果您按照说明移动了括号,那么command5;
也可以触发将运行6和7的MyException
。