我正在嘗試使用Dart,並且現在我一直在爲此奮鬥。打電話:無法捕捉SocketException
runServer() {
HttpServer.bind(InternetAddress.ANY_IP_V4, 8080)
.then((server) {
server.listen((HttpRequest request) {
request.response.write('Hello, World!');
request.response.close();
});
});
}
一旦工作就像一個魅力。然後,試圖
try {
runServer();
} on Error catch (e) {
print("error");
} on Exception catch(f) {
print("exception");
}
現在我期望,如果我是用這個try-catch代碼並開始收聽同一端口超過一次,因爲我趕上所有的異常和所有錯誤,程序不會崩潰。然而,運行代碼的兩倍,而不是輸入任何的try/catch子句後,我得到:
Uncaut Error: SocketException: Failed to create server socket (OS Error: Only one usage of each socket address (protocol/network address/port) is normally permitted.
雖然我知道是什麼錯誤,我不明白爲何它沒有簡單地輸入捕獲錯誤/異常條款?
我明白你的意思被抓,但我不明白爲什麼這是一個異步錯誤。我的意思是,在開始實際異步地收聽請求之前,您會收到此錯誤,對嗎? – Alexandr
'HttpServer.bind()'已經是異步的(返回'Future') –
你是對的,Gunter。這次真是萬分感謝! – Alexandr