Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Isn';这个例外的例子不对吗?_Java_Exception - Fatal编程技术网

Java Isn';这个例外的例子不对吗?

Java Isn';这个例外的例子不对吗?,java,exception,Java,Exception,所以我只是在学习Java中的异常,我在看一个例子,但它要么是错误的,要么我仍然不理解它 代码如下: command1; try { command2; command3; try { command4; command5; } catch (MyException e) { command6; } command7; } catch (IOException e) { command8; } catch (OwnEx

所以我只是在学习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命令6是在command7之后才是真的吗?所以command6和command7应该放在一个catch块中,以解释为什么command7永远不会执行,仅在这一种情况下(我猜如果command5期间发生MyException,它也会执行,但并非所有场景都在注释中显示)



命令7应每次运行,除非
command2
命令3或可能
命令6导致
IOException
owneexception
。明显
command7将不会运行,但除此之外,不应该有其他解决方法。如果
command11运行,并且两个命令都不
command8
命令9运行然后
命令7应该已经运行了。如果您按照说明移动了括号,则
command5
还可以触发运行6和7的MyException应每次运行,除非
command2
命令3或可能
命令6导致
IOException
owneexception
。明显
command7将不会运行,但除此之外,不应该有其他解决方法。如果
command11运行,并且两个命令都不
command8
命令9运行然后
命令7应该已经运行了。如果您按照说明移动了括号,则
command5
还可能触发运行6和7的
MyException

你是对的,你的老师是错的。但解决这个问题的最好办法是自己运行。这比写一个所谓的问题要快:)正如@sstan所说,使用ide(或ideone.com)玩这个东西,你就可以用自己的眼睛看到它;)“但command7几乎从不运行,只有在一种情况下,如果在command4期间发生MyException”。这并不完全正确。如果在command4和command5期间未遇到异常,则命令7也会运行。在command6之后不在catch block中运行command7是有目的的。@Jimmy我刚刚再次检查过,根据我老师的说明,如果没有任何异常,那么command1、2、3、4、5、10和11将运行,但如果没有拼写错误,command7也不是故意在catch block中,那么它也应该运行,不是吗?一个一致的缩进和括号的位置会帮助你看得更清楚。你是对的,你的老师是错的。但解决这个问题的最好办法是自己运行。这比写一个所谓的问题要快:)正如@sstan所说,使用ide(或ideone.com)玩这个东西,你就可以用自己的眼睛看到它;)“但command7几乎从不运行,只有在一种情况下,如果在command4期间发生MyException”。这并不完全正确。如果在command4和command5期间未遇到异常,则命令7也会运行。在command6之后不在catch block中运行command7是有目的的。@Jimmy我刚刚再次检查过,根据我老师的说明,如果没有任何异常,那么command1、2、3、4、5、10和11将运行,但如果没有拼写错误,command7也不是故意在catch block中,那么它也应该运行,难道不是吗?一个一致的缩进和支撑的位置将有助于看得更清楚。