码农-胖虎 2023-02-24 10:16 采纳率: 0%
浏览 17

springBoot 整合rocketMq

springBoot 整合rocketMq 之后在 消费者接收到消息调用service 逻辑方法 出现空指针之类的异常不会打印在控制台 这是为什么

  • 写回答

3条回答 默认 最新

  • GPT_Pro 2023-02-24 10:32
    关注

    该回答内容部分引用GPT,GPT_Pro更好的解决问题
    springBoot 整合rocketMq 之后在 消费者接收到消息调用service 逻辑方法 出现空指针之类的异常不会打印在控制台,这是因为RocketMQ是一个异步框架,consumer端有可能出现异常,但是它不会影响到生产者端,所以不会打印在控制台上。如果想要让它打印在控制台上,就需要我们自己处理下,可以在consumer端进行异常处理。例如在消费者端可以使用try-catch来处理异常:

    try {
         //TODO 这里写入消费的逻辑
         // 消费者一般会调用service逻辑去处理消息
         service.consumeMessage(msg);
    } catch (Exception e) {
        // 处理异常逻辑
        logger.error("消费者出现异常,原因{}", e.getMessage());
    }
    

    如上代码,当出现异常时就会进入catch语句,然后可以将错误信息打印出来。同时注意,一般我们也会在service中也进行try-catch处理,将service中的异常也能够打印出来。
    如果回答有帮助,望采纳。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月24日