我的webapp使用Java applet,其方法可能会抛出异常。 applet的典型方法如下所示。
public boolean doSomething() throws PrivilegedActionException {
return AccessController.doPrivileged(new PrivilegedExceptionAction<Boolean>(){
@Override
public Boolean run() throws PrivilegedActionException {
try {
// impl omitted
} catch (SomeException e) {
throw new CustomException(e, "someErrorCode");
}
}
});
}
从applet抛出的异常类看起来像这个
public class CustomException extends PrivilegedActionException {
String errorCode;
public CustomException(Throwable t, String errorCode) {
super(t);
this.errorCode = errorCode
}
}
当从JavaScript调用此applet方法时,如果抛出异常,我需要检索errorCode
属性
try {
document.myApplet.doSomething();
} catch (err) {
console.log(err);
}
但是,如果我检查err
,它似乎是String
,表示异常类的名称。我希望它是Error
的一个实例,并希望能够使用errorCode
检索例外err.errorCode
。
如何从applet转换为JavaScript对象抛出异常,是否可以获得更多细节而不仅仅是异常类的名称?