scala - 为什么 AdminClient 不抛出异常?
问题描述
我有一个 Kafka AdminClient,当 Kafkaserver 处于活动状态时,它将返回 true,否则返回 false。
private def health(server: String): Boolean = {
val props = new Properties
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, server)
props.put(AdminClientConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, "10000")
props.put(AdminClientConfig.REQUEST_TIMEOUT_MS_CONFIG, "5000")
try {
AdminClient
.create(props)
.listTopics()
.names()
.get()
true
} catch {
case _: InterruptedException => false
case _: ExecutionException => false
}
现在,我有一个场景,即 Kafka 处于脱机状态,并且该方法不返回false
or true
。
我究竟做错了什么?
解决方案
应用评论,我似乎无法复制该问题,例如,以下
val kafkaFuture = new KafkaFutureImpl
kafkaFuture.completeExceptionally(new RuntimeException("splosh"))
println(
try {
kafkaFuture.get()
} catch {
case _: InterruptedException => "boom"
case _: ExecutionException => "crash"
}
)
输出crash
,这表明case _: ExecutionException
分支被正确命中。
推荐阅读
- c# - 在 LINQ 中按子列表的属性对主列表进行排序
- css - 按钮内的中心 svg 图标
- python - Openpyxl通过索引访问Excel工作表
- google-sheets - 尝试获取数据透视表中子类别的大小(以 % 为单位)
- android - 如何将按钮文本与父布局而不是按钮本身对齐?
- java - com.sun.mail.smtp.SMTPAddressFailedException:554 5.7.1
: 中继访问被拒绝 - java - 我将如何在单元测试中深入比较两个地图
- .net - 我可以在 4.5 运行时运行使用 4.7.2 构建的应用程序吗?
- ansible - 如何在ansible中的每个列表元素之前添加一个参数?
- flutter - 立方在 Flutter 中是如何工作的?