Перехват CompletionException из функции KotlinJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Перехват CompletionException из функции Kotlin

Сообщение Anonymous »

Моя конечная цель — найти количество разделов для темы Pulsar (Получение количества разделов темы Pulsar: не удалось проанализировать правильный Uri, отсутствует схема), но в процессе альтернативного метода я столкнулся с чем-то своеобразно.
У меня есть способ, при котором я перебираю максимальное количество разделов и пытаюсь создать программу чтения, пока не произойдет ошибка.

Код: Выделить всё

        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)
}
}
java.util.concurrent.CompletionException:
org.apache.pulsar.client.api.PulsarClientException$NotAllowedException:
{" errorMsg":"Недопустимое имя раздела темы...

Я хотел бы перехватить приведенное выше исключение и не выводить его на консоль, несмотря на это. попробуйте-catch выше, он все равно печатает. Почему? Это явление, связанное с сопрограммой Kotlin. Код выполняется в функции приостановки.
Обновление: дополнительная информация об ошибке: https:/ /pastebin.com/NqMDU5vR
Я не хочу печатать именно длинную трассировку стека CompletionException. Дело в том, чтобы улучшить качество вывода отладки на консоль.Возможно, ошибка вызвана внутренним API Pulsar, и нет способа остановить ее печать?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»