javascript - Try 正在执行,但 catch 没有缓存错误

标签 javascript

我正在尝试测试 https 连接。 “try”正在执行,但“catch”没有缓存错误并根据需要执行代码。

我正在使用node.js

var https = require("https");

  try {

  https.get({host:'nonsecuredomain.com'}, function(res){});

  }

  catch(err) {

  console.log('maybe an ssl error');

  }

事件.js:167 扔呃;//未处理的“错误”事件 ^

Error: certificate has expired
    at TLSSocket.onConnectSecure (_tls_wrap.js:1049:34)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket._finishInit (_tls_wrap.js:631:8)
Emitted 'error' event at:
    at TLSSocket.socketErrorListener (_http_client.js:392:9)
    at TLSSocket.emit (events.js:182:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)

最佳答案

https.get 是异步的。这意味着当网络返回结果或错误时,带有 try catch 的函数已经返回。

get 返回一个对象,该对象将在出现错误时发出事件。您应该监听该“错误”事件并处理异步引发的错误:

https.get(url, (res) => {
    res.on('data', (d) => {
       // do stuff
    });
}).on('error', (e) => {
    console.error(e); // deal with errors
});

关于javascript - Try 正在执行,但 catch 没有缓存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047460/

相关文章:

javascript - 在 JavaScript 中覆盖 console.log

javascript - Html 5 文件 api 和 jcrop 问题

javascript - 标签文本为空

javascript - jQuery UI 对话框 : Close when Click Outside

javascript - 在 for 循环中使用 async/await 并不等待异步方法调用

javascript - 如何使用javascript提取数据属性中的值列表?

javascript - 为什么我收到此错误 "undefined is not a function "

javascript - 获取顺序中所有可能的子串

javascript - Google App Engine channel token 无效

javascript - 有没有办法通过 JavaScript 连接到 TCP 套接字?