2012-03-28 12 views
2
überwinden kann

Ich habe eine Quelle wie folgt aus:Unexpected initCause Verhalten, das ich nicht

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

Ich versuche, die Ursache für die Ausnahme „e“ zu setzen und was ich bekommen ist die Ausnahme von selbst eingestellt werden!

Ich verstehe es einfach nicht. Macht mein Code Sinn oder bin ich verrückt?

+0

Sind Sie sich sicher, was Sie sehen? Der gezeigte Code funktioniert korrekt für mich und legt die Ursache von Ausnahme "e" als IOException 'ioe' fest. – Perception

+0

Ich versuche es noch einmal, vielleicht werde ich gerade vom GWT-Entwicklungsmodus abgewimmelt (ich benutze dieses Tool). –

+0

scheint der GWT Serializer nicht "Ursache" zu codieren. Ich war nicht verrückt und wurde von GWT gespielt. –

Antwort

2

scheint zu funktionieren:

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; 
    } 

} 

Die Ausgabe lautet:

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) 

Sie können sehen, dass die Ursache richtig eingestellt ist.