我遇到了这个重新抛出的异常,甚至惊讶于它能够编译通过。
} catch(SomeException e) {
...
throw(e);
}
这个 throw() 和通常使用的有什么区别吗?...
} catch(SomeException e) {
...
throw e;
}
任何有关此文档或选择其中一个的指导链接?
许多语言允许在表达式周围使用任意数量的括号,Java也是其中之一。以下代码是完全有效的。
public class HelloWorld {
public static void main(String[] args) {
throw ((((new RuntimeException()))));
}
}
所以除了你的源文件会多两个字节外,没有任何区别。
从功能上来说,它们是等效的。
然而,不要选择throw(e);
,因为有人可能会误以为它是一个方法调用,最起码会让某些人不必要地想知道你在做什么。为了清晰明了,请优先选择正常的throw e;
语法。
Throw是一个指令,用于抛出“可抛掷”(通常是异常)
可以将其视为返回语句
Public int get value() {
return 3;
}
等同于的意思是
Public int get value() {
return (3);
}
对于可抛出异常(Throwable)也是一样。
实际上它们都遵循完全相同的规则。
e.getMessage()
都是一个不好的主意。 - biziclop