Java Exception将“:null”附加到“由...引起”子句

时间:2012-03-19 17:53:50

标签: java exception

在我的日志中显示如下所示的一些例外:(文本已被修改以隐藏项目信息)

java.util.concurrent.ExecutionException:org.xxx.BBBException<br>
&nbsp;&nbsp;at ....<br>
&nbsp;&nbsp;...<br>
Caused by: org.xxx.BBBException: null<br>
&nbsp;&nbsp;at ....<br>
&nbsp;&nbsp;...<br>

为什么在引发条款中有“null”?

由我们制作的BBBException扩展了Exception并且没有覆盖toString()。 在某些情况下,会调用FutureTask.setException(new BBBException(“RPC timed out”))并在日志中预期BBBException。 但是,异常的详细信息不是我们在程序中设置的,第一行和Caused by子句中的文本甚至不匹配(第一行中没有“:null”)。 任何人都知道为什么会这样?谢谢!

环境:java 6,更新21,centos 64位,java 64位,混合模式。

2 个答案:

答案 0 :(得分:2)

我怀疑你 实际创建了一个没有消息的新BBBException,或者你的BBBException(String)构造函数没有将消息传递给超级构造函数(它应该通过super(message))。基本上它是说:这是一个没有消息的例外。

如果没有看到任何代码,很难告诉完全错误。

答案 1 :(得分:1)

org.xxx.BBBException: null抛出null消息(使用默认构造函数)。抛出一些消息(如果它支持):

throw new BBBException("Danger! High Voltage")

如果这不起作用,则意味着BBBException(String msg)构造函数写得不好。它应该是这样的:

BBBException(String msg) {
  super(msg);
}