Dod*_*odi 3 java exception-handling exception multi-catch
我知道自从Java 7你可以使用multi-catch
但是我想知道它的异常顺序是否与之前版本的java一样重要?例如,我把异常,然后SQLException
和IOException
?
try {
// execute code that may throw 1 of the 3 exceptions below.
} catch(Exception | SQLException | IOException e) {
logger.log(e);
}
Run Code Online (Sandbox Code Playgroud)
或者我应该这样做?
try {
// execute code that may throw 1 of the 3 exceptions below.
} catch(SQLException | IOException e) {
logger.log(e);
} catch(Exception e) {
logger.severe(e);
}
Run Code Online (Sandbox Code Playgroud)
catch(Exception | SQLException | IOException e)
因为Exception
已经覆盖了它的子类IOException
和单个catch块,所以没有任何意义SQLException
.
因此catch(Exception e)
,如果您希望对所有这些异常类型进行相同的处理,那就足够了.
如果你想要更通用的不同处理Exception
,你的第二个代码片段是有意义的,这里两个catch块的顺序很重要,因为你必须首先捕获更具体的异常类型.
多重捕获异常类型由“OR”分隔,所以不,顺序并不重要。
\n\n如果您计划以相同的方式处理所有异常类型,则应该仅使用 multicatch,如果是这种情况,顺序并不重要。
\n\n编辑:确实,如果类型位于 hi\xc3\xabrarchical 行中,则仅应捕获“替代”(在本例中为通用异常)类型。\n但这与它们的顺序无关。
\n 归档时间: |
|
查看次数: |
2735 次 |
最近记录: |