У меня есть способ, при котором я перебираю максимальное количество разделов и пытаюсь создать программу чтения, пока не произойдет ошибка.
Код: Выделить всё
for (i in 0..MAX_NUM_PARTITIONS) {
val topicPartition = "$topic-partition-$i"
var partitionReader: Reader? = null
try {
partitionReader =
client
.newReader(BYTES)
.startMessageId(MessageId.latest)
.topic(topicPartition)
.create()
} catch (e: Exception) {
// TODO: This still prints a CompletionException error to the console unnecessarily.
// Either catch that or calculate # partitions in a cleaner way.
break
}
if (partitionReader != null) {
readers.add(partitionReader)
}
}
org.apache.pulsar.client.api.PulsarClientException$NotAllowedException:
{" errorMsg":"Недопустимое имя раздела темы...
Я хотел бы перехватить приведенное выше исключение и не выводить его на консоль, несмотря на это. попробуйте-catch выше, он все равно печатает. Почему? Это явление, связанное с сопрограммой Kotlin. Код работает в функции приостановки.
Подробнее здесь: https://stackoverflow.com/questions/792 ... n-function
Мобильная версия