为什么这个catch块在编译时出错,这段代码用于用jvtsession包装额外的权限
public void cancelOperation() throws ErrorException {
OCAClientUtil.checkIdleTimeout();
if (!queryInProgress)
return;
String searchID = getSearchId();
OCAClientAsset.resetIdleTimer();
Security.runAs(asset.getSubject(), new PrivilegedAction(){
public Object run(){
try {
jvtxsession.cancelQuery(searchID);
} catch (Exception ex) {
throw OCAClientUtil.newErrorException(ex, "Cancel Query Work Order: ");
}
return null;
}
});
queryInProgress = false;
}
为什么上面提到的错误即将到来
答案 0 :(得分:2)
run()
回调中的Security.runAs()
方法未声明throws ErrorException
。由于回调未定义为抛出任何已检查的异常,因此不能将它们抛出回调实现。