千分尺定时器异常处理

Micrometer timer exception handling

我想处理在记录的方法中抛出的异常。例如,我用kafka.send()方法向kafka发送消息,我记录它:timer.record(() -> kafka.send()) Kafka 可能会产生一些异常,如果它发生了,我想进行某种事务并回滚一些代码。如何处理 kafka.send 方法中抛出的异常?正如我在timer.record的代码中看到的那样,它吞下了异常,对吗?

不,timer.record 方法不会吞下异常。只有finally-block,没有catch-block:https://github.com/micrometer-metrics/micrometer/blob/main/micrometer-core/src/main/java/io/micrometer/core/instrument/AbstractTimer.java

并且您可以像往常一样在代码中处理异常。