added a macro: THROW_ASURA_EXCEPTION().