错误:未报告的异常ErrorException;必须被抓住或宣布被抛出

时间:2016-06-23 10:28:53

标签: java exception-handling compiler-errors

为什么这个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;
}

为什么上面提到的错误即将到来

1 个答案:

答案 0 :(得分:2)

run()回调中的Security.runAs()方法未声明throws ErrorException。由于回调未定义为抛出任何已检查的异常,因此不能将它们抛出回调实现。