求助,如何捕获 Error: connect ETIMEOUT 等导致进程直接结束的错误?
在用 https.get
访问其他服务器时超时,结果出现 Error: connect ETIMEOUT
,并且进程终止。
请问这类错误该如何捕获?
我尝试了
https.get(options, function(res){
...
res.on('error', function(e){
...
});
});
和
try {
https.get(options, function(res){
...
});
} catch (e) {
...
}
都不能阻止报错,是我方法不当么?还有什么解决方法?
3 回复
……自问自答了,文档没看清楚,.on('error' ...)
要加在外面。
https.get(options, function(res){
...
}).on('error', function(e){
...
});
Error: connect ETIMEOUT 原因是对方地址不存在。
嗯,我那次的原因是 DNS 缓存,我在电信的网络开了个虚拟机,然后休眠,在一个移动的网络环境里唤醒,结果就访问超时了,搞了好久才发现问题出在这里。