2012-03-28 59 views
2

我有这样的一个来源:意外initCause行为我不能克服

Exception e = new Exception("Exception"); 
    IOException ioE = new IOException("An exception cause"); 
    e.initCause(ioE); 

我正在尝试设置例外“E”的原因,我得到的是被设定为自身的异常!

我只是不明白。我的代码是否有意义?还是我疯了?

+0

你确定你在看什么?显示的代码对我来说工作正常,并将异常'e'的原因设置为IOException'ioe'。 – Perception 2012-03-28 00:08:37

+0

我再次尝试,也许我只是被GWT开发模式抛出(我正在使用这个工具)。 – 2012-03-28 00:10:02

+0

似乎GWT串行器不编码“原因”。我没有疯狂,被GWT玩过。 – 2012-03-28 13:46:52

回答

2

似乎工作:

package com.daniel.test; 

import java.io.IOException; 

public class Test { 

public static void main(String[] args) throws Exception{ 
    Exception e = new Exception("Exception"); 
    IOException ioE = new IOException("An exception cause"); 
    e.initCause(ioE); 
    throw e; 
    } 

} 

输出是:

Exception in thread "main" java.lang.Exception: Exception 
at com.daniel.test.Test.main(Test.java:8) 
Caused by: java.io.IOException: An exception cause 
at com.daniel.test.Test.main(Test.java:9) 

你可以看到原因设置正确。