【发布时间】:2011-06-22 05:17:10
【问题描述】:
在 java 中,如果我们必须在 if 或 for 之后只执行一条语句,则不需要括号。我们可以这样写:
if(condition)
executeSingleStatement();
或
for(init;condition;incr)
executeSingleStatement();
但是在catch块的情况下为什么不能省略括号呢?为什么这是不可能的?
catch(Exception e)
e.printStackTrace();
因为在大多数情况下 我们 我在 catch 块中只有一个语句,即 e.printStackTrace() while testing 或 logging 语句。
【问题讨论】:
-
一个方法需要花括号,即使是单语句方法也是如此。也许是因为有一个隐含的 e = throwException;作为 catch 块中的第一条语句。
-
@MeBigFatGuy:
e = thrownException;是什么意思?我们在参数块中将e声明为异常,那么为什么需要此语句? -
@Harry Joy:想想看。 'e' 如何包含异常对象?
-
@Gkelly , @MeBigFatGuy :所以它会首先初始化
e并处理已经发生的异常,然后进行其余的处理。我说的对吗? -
附带说明:另一个有趣的情况是,您根本没有像
if(condition);这样的任何正文(请注意末尾的分号)
标签: java syntax braces catch-block