用zeromq通讯, 某一个线程出现异常了,怎么确保它返回客户端

zeromq的服务端是开了20个线程,然后我为每个线程自定义了一个异常捕获, 但是当某个线程出现异常之后, 却没有返回给客服端, 客户端一直在等待, 服务端报错: GC开销超出限制; 下面是代码,是对捕获到的异常处理,有返回值,却没有返回到客户端,大神帮看一下,谢谢

/**
     * 捕获异常 线程当中出现的异常 将在这里捕获
     */
    @Override
    public void uncaughtException(Thread t, Throwable e) {
        logger.info("************FAILED************");
        logger.info(t.currentThread().getName() + e.getMessage());

        while (skt.hasReceiveMore()){
            skt.recvStr(0).trim();
        }
        skt.send("FAILED", 2);
        skt.send("FAILED:" + e.getMessage(), 0);

    }

https://blog.csdn.net/wushuangge/article/details/89396393?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167270319316800225549065%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167270319316800225549065&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~pc_rank_34-2-89396393-null-null.142^v68^pc_new_rank,201^v4^add_ask,213^v2^t3_esquery_v3&utm_term=%E7%94%A8zeromq%E9%80%9A%E8%AE%AF%2C%20%E6%9F%90%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8%E4%BA%86%2C%E6%80%8E%E4%B9%88%E7%A1%AE%E4%BF%9D%E5%AE%83%E8%BF%94%E5%9B%9E%E5%AE%A2%E6%88%B7%E7%AB%AF&spm=1018.2226.3001.4187