1 回答
TA贡献1836条经验 获得超5个赞
想到了几种可能性:
添加WebSocket.onerror错误处理程序
myWebSocket.onerror = myEventHandler;
将您的“连接”包裹在try/catch 块中
try {
const connection = new WebSocket(myUrl);
...
}
catch(error) {
console.error(error);
}
构建您的代码,使您的 I/O 是事件驱动的:
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket#Examples
// Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');
// Connection opened
socket.addEventListener('open', function (event) {
socket.send('Hello Server!');
});
// Listen for messages
socket.addEventListener('message', function (event) {
console.log('Message from server ', event.data);
});
// Handle errors
socket.addEventListener('error', function (event) {
console.log('WebSocket error observed:', event);
});
附录:
上述方法可以让您完全处理 websockets 异常。
不管异常是否被处理,Chrome 调试器都会告诉你是否发生了异常。这是一件好事。它被称为“第一次机会例外”:
https://docs.microsoft.com/en-us/security-risk-detection/concepts/first-chance-exception
.. 它被称为“第一次机会”异常——在应用程序处理异常(或不处理)之前,调试器有第一次机会检查异常。
在 Microsoft 的 Visual Studio 调试器中,有一个小复选框可用于“堵住”第一次机会异常。我不知道 Chrome 调试器中有任何类似的“复选框”。
可能的建议:
添加回答
举报