在throw参数周围添加括号是否有任何影响?

5

在写作中有什么区别:

throw SomeException;

并且。
throw(SomeException);

我看到一些来源声称后者(带括号)由于某些原因不是一个好选择,但是我无法回忆起我在哪里看到的。


1
也许你把它和throw specifiers混淆了? - Pubby
我不确定throw的情况,但对于case来说,加不加大括号都没关系,尽管有些人认为这样看起来不太好(还有一些编码指南禁止这样做)。我认为这里也是一样的。 - leemes
1
不,我不这么认为。顺便问一下,同样的问题也适用于“return”。我在某个地方看到过写“return (4);”是不好的做法。 - Ivaylo Strandjev
@leemes,这可能在使用宏的case语句中很重要;因此只有在相当古老的代码中才会出现。 - Bartek Banachewicz
@Ivaylo 看起来像是一个函数调用(当然它不是)。 - Bartek Banachewicz
显示剩余5条评论
1个回答

6
除了括号,这两个表达式之间不应该有任何功能差异。我从未听说过有任何明确的理由说明为什么一个表达式应该优于另一个表达式。
对我来说,第一个选项看起来更直观,因为它不包含不必要的括号!
此外,正如@Pubby在评论中所说,人们不应混淆需要括号的throw specifier(throw specifier可能已经被deprecated)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接