As far as this method's change is concerned, it's equivalent.
Slightly clearer that exception being passed through isn't linked.

For reference this is before:

    bool CActivityBase::fireException(IException *e)
    {
        IThorException *te = QUERYINTERFACE(e, IThorException);
        StringBuffer s;
        Owned<IException> e2;
        if (!te)
        {
            IThorException *_e = MakeActivityException(this, e);
            _e->setAudience(e->errorAudience());
            e2.setown(_e);
        }
        else
        {
            if (!te->queryActivityId())
                setExceptionActivityInfo(container, te);
            e2.set(e);
        }
        return container.queryOwner().fireException(e2);
    }    


this is after:

    bool CActivityBase::fireException(IException *e)
    {
        Owned<IThorException> _te;
        IThorException *te = QUERYINTERFACE(e, IThorException);
        if (te)
        {
            if (!te->queryActivityId())
                setExceptionActivityInfo(container, te);
        }
        else
        {
            te = MakeActivityException(this, e);
            te->setAudience(e->errorAudience());
            _te.setown(te);
        }
        return container.queryOwner().fireException(te);
    }