catch块中的代码有什么限制

时间:2016-01-14 10:06:57

标签: java exception try-catch

那么在catch块中写入代码有什么具体限制吗?

PS。这个问题是我朋友的java编程老师在考试中提出来的。

2 个答案:

答案 0 :(得分:2)

在此功能中,现在您可以在单个catch块中捕获多个异常。在java 7之前,你被限制只捕获一个。要指定预期异常列表,请使用管道(“|”)字符。

Lets understand using an example.

try
{
       //Do some processing which throws NullPointerException; I am sending directly
       throw new NullPointerException();
}

//You can catch multiple exception added after 'pipe' character
catch(NullPointerException | IndexOutOfBoundsException ex)
{
       throw ex;
}

请记住:如果catch块处理多个异常类型,则catch参数隐式为final。在此示例中,catch参数ex是final,因此您无法在catch块中为其分配任何值。

答案 1 :(得分:1)

根据JLS

CatchClause:  
    catch ( {VariableModifier} CatchType Identifier ) Block

所以,你可以写任何你可以写在任何其他块中的东西。