Ổ cắm của tôi hiện đang phát ròng :: ERR_CONNECTION_REFUSED vì máy chủ không chạy, mà tôi muốn nó hoạt động tại thời điểm này.Javascript không gặp lỗi trong quá trình khởi tạo WebSocket
Sự cố là đoạn mã sau đây không phát hiện lỗi. Trong giao diện điều khiển, tôi thấy một ngoại lệ trên dòng 2 (với net :: ERR_CONNECTION_REFUSED) mà tôi tin rằng không nên xảy ra vì nó nằm trong một câu lệnh thử.
1 try {
2 ws = new WebSocket('ws://'+ host + ':' + port + '/');
3 }
4 catch (err) {
5 console.log('This never prints');
6 }
7 ws.onerror = function (error) {
8 console.log(error);
9 };
Vì vậy, câu hỏi của tôi là tại sao nó không bị bắt?
Những gì tôi rốt cuộc muốn là thông báo lỗi sẽ được hiển thị ở những nơi khác, nhưng tôi không thể bắt nó, và dòng 8 in một "sự kiện" đối tượng mà không đề cập net :: ERR_CONNECTION_REFUSED, vì vậy tôi không chắc chắn làm thế nào để có được thông báo lỗi.
Đó là thông tin rất hữu ích, mặc dù tôi không thấy lý do tại sao ngoại lệ không bị "bắt". Điều đó dường như phá vỡ khuôn khổ cơ bản của ngôn ngữ. Tôi đoán rằng cách để làm những gì tôi muốn sẽ là xử lý onclose và nhìn vào mã của CloseEvent. – andyhasit
@AndyHasIt Tôi đã thêm đoạn mở đầu về điều đó; Tôi hy vọng nó đủ rõ ràng. Về cơ bản, chúng tôi không thể 'bắt' một lỗi vì chúng tôi đồng bộ thoát khỏi khối 'try' trước khi cố gắng kết nối không đồng bộ gặp lỗi. – apsillers
Làm cho cảm giác hoàn hảo, cảm ơn sự giúp đỡ của bạn. – andyhasit