在flex中处理具有可丢弃原因的自定义java异常
我使用一个自定义java异常为flex客户端提供比异常本身更多的信息。我的异常扩展了异常,它有一个属性,其中包含客户端所需的信息 好吧,我的问题是:当我构建我的异常时,如果我调用super()或super(“message”),flex客户端可以正确地访问所有信息。但是如果我用一个可丢弃的原因super(原因)构建异常,那么flex客户端只能访问stackTrace在flex中处理具有可丢弃原因的自定义java异常,java,apache-flex,exception-handling,Java,Apache Flex,Exception Handling,我使用一个自定义java异常为flex客户端提供比异常本身更多的信息。我的异常扩展了异常,它有一个属性,其中包含客户端所需的信息 好吧,我的问题是:当我构建我的异常时,如果我调用super()或super(“message”),flex客户端可以正确地访问所有信息。但是如果我用一个可丢弃的原因super(原因)构建异常,那么flex客户端只能访问stackTrace public class MyException extends Exception { private String
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);
}
}
通过使用MyException(String msg),flex客户端可以访问errorCode
通过使用MyException(可丢弃原因),flex客户端无法访问错误代码
在flex端,代码是:
var faultEvent : FaultEvent = FaultEvent( event );
var errorMessage:ErrorMessage = faultEvent.message as ErrorMessage;
var codeError:String = errorMessage.rootCause.errorCode;
你知道发生了什么吗?问题是你使用的是
final
。
不要使用
final
关键字。抛出MyException
的代码在哪里?catch(final LDAPException e){throw new MyException(e);}flex客户端无法访问errorCode-什么意思?errorMessage.rootCause对象不包含该属性。但是,如果我没有设置原因,则根本原因确实包含errorCode属性。如果我删除final关键字,则行为相同:(