1
我有一個HTML是輸出(顯示線程的結果),並完成後,所有的線程(我使用連接等待完成)顯示跟蹤線程失敗
有時各個線程可以有例外。
- 如果我在任何線程中沒有任何異常,我想在瀏覽器中顯示HTML。
- 如果我在所有的線程異常話,我想如果我有一些例外,但不是所有的線程,然後我想顯示的HTML
什麼是最簡單的不顯示HTML
我有一個HTML是輸出(顯示線程的結果),並完成後,所有的線程(我使用連接等待完成)顯示跟蹤線程失敗
有時各個線程可以有例外。
什麼是最簡單的不顯示HTML
您可以使用CompletableFuture
爲了這個目的,例如:
val future1: CompletableFuture<String> = CompletableFuture.supplyAsync {
println("This is your thread 1 code")
"<html><head><title>"
}
val future2: CompletableFuture<String> = CompletableFuture.supplyAsync {
println("This is your thread 2 code")
if (Random().nextBoolean()) throw RuntimeException("Failed")
"Title!</title></html></head>"
}
future1.thenCombine(future2, {result1, result2 -> result1 + result2}).whenComplete { s, throwable ->
if (throwable != null) {
println("failed")
} else {
println("done with $s")
}
}
而且在科特林1.1,你將能夠寫這樣的代碼更易讀的方式:
async {
try {
val s1 = await(future1)
val s2 = await(future2)
println(s1 + s2)
} catch (e: Exception) {
println("failed")
}
}