2012-03-08 6 views
0

カスタムJava例外を使用して、例外自体よりも多くの情報をフレックスクライアントに提供しています。私の例外はExceptionを拡張し、クライアントに必要な情報を持つ属性を持っています。フレキシブルでスロー可能な原因によるカスタムJava例外の処理

私の例外は、super()またはsuper( "message")を呼び出すとビルドするときに、flexクライアントはすべての情報に正しくアクセスできます。しかし、Throwable cause、super(cause)で例外を構築すると、flexクライアントはstackTraceにしかアクセスできません。フレックスクライアントがMyException(Throwableの原因)を使用することによりerrorCodeを にアクセスすることができMyException(文字列MSG)を使用することにより

public class MyException extends Exception { 

    private String errorCode; 

public String getErrorCode() { 
     return errorCode; 
    } 

    public void setErrorCode(String errorCode) { 
     this.errorCode = errorCode; 
    } 

public MyException(String msg) { 
     super(msg); 
    } 

public MyException(Throwable cause) { 
     super(cause); 
    } 
} 

フレックス側でのerrorCode

にフレックスクライアントcan'tアクセスコードは次のとおりです。

var faultEvent : FaultEvent = FaultEvent(event); 
var errorMessage:ErrorMessage = faultEvent.message as ErrorMessage; 
var codeError:String = errorMessage.rootCause.errorCode; 

あなたは何が起こっているのか知っていますか?

+0

ここで、 'MyException'をスローするコードはどこですか? – vulkanino

+0

catch(最終LDAPException e){ 新しいMyException(e)をスローします。 } – althor

+0

__the flexクライアントはerrorCode__にアクセスできません - どういう意味ですか? – vulkanino

答えて

0

問題はfinalを使用していることです。 キーワードfinalを使用しないでください。

+0

最後のキーワードを削除した場合の動作は同じです:( – althor

関連する問題