那么在catch块中写入代码有什么具体限制吗?
PS。这个问题是我朋友的java编程老师在考试中提出来的。
答案 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
所以,你可以写任何你可以写在任何其他块中的东西。