} catch (BDDException x) {
} catch (ReorderException x) {
    int bdd_relprod3(int a, int b, int c, int var) {        int res;        int numReorder = 1;        CHECKa(a, bddfalse);        CHECKa(b, bddfalse);        CHECKa(c, bddfalse);        CHECKa(var, bddfalse);        if (ISCONST(var)) {            /* Empty set */            res = bdd_apply(a, b, bddop_and);            return bdd_apply(res, c, bddop_and);        }        if (andcache == null) andcache = new OpCache2(cachesize);        if (appexcache == null) appexcache = new OpCache3(cachesize);        if (appex3cache == null) appex3cache = new OpCache4(cachesize);        if (orcache == null) orcache = new OpCache2(cachesize); // or_rec()        if (quantcache == null) quantcache = new OpCache2(cachesize); // quant_rec()                again : for (;;) {            if (varset2vartable(var) < 0)                return bddfalse;            try {                INITREF();                applyop = bddop_or;                appexop = bddop_and;                appexid = (var << 7) | (appexop << 3) | CACHEID_APPEX;                quantid = appexid;                if (numReorder == 0) bdd_disable_reorder();                res = relprod3_rec(a, b, c);                if (numReorder == 0) bdd_enable_reorder();            } catch (BDDException x) {                bdd_checkreorder();                numReorder--;                continue again;            }            break;        }        checkresize();        return res;    }