} catch (BDDException x) {
} catch (ReorderException x) {
    int bdd_compose(int f, int g, int var) {        int res;        int numReorder = 1;        CHECKa(f, bddfalse);        CHECKa(g, bddfalse);        if (var < 0 || var >= bddvarnum) {            bdd_error(BDD_VAR);            return bddfalse;        }        if (appexcache == null) appexcache = new OpCache3(cachesize);        if (itecache == null) itecache = new OpCache3(cachesize);                again : for (;;) {            try {                INITREF();                composelevel = bddvar2level[var];                appexid = (composelevel << 3) | CACHEID_COMPOSE;                if (numReorder == 0) bdd_disable_reorder();                res = compose_rec(f, g);                if (numReorder == 0) bdd_enable_reorder();            } catch (BDDException x) {                bdd_checkreorder();                numReorder--;                continue again;            }            break;        }        checkresize();        return res;    }