Всем привет. Пишу прокси чеккер для фильтрации бесплатных прокси-серверов. Принцип такой: если тестовый запрос успешный, то добавляем адрес в массив, если ошибка - пропускаем адрес и берем следующий.
Но не получается отловить все ошибки, одна постоянно просачивается мимо trycatch. И что особенно обескураживает, что иногда её получается поймать, а иногда она попадает в uncaught errors и всё ломает.
Запросы шлю родным для NodeJS https, во всех слушателях
on('error')
прописал
console.log(error)
и там тишина. Получается что ошибка выскакивает вообще в другом месте и умудряется миновать блок trycatch.
Обновление 23 мая 11:30
Вместо socks прокси пробовал http прокси на основе такого
решения, даже
tlsConnection.on('error')
не помогло поймать эту ошибку
Вопрос: почему эта ошибка проходит мимо trycatch и как её отловить?
Код запросаreturn new Promise((resolve, reject) => {
const httpsOptions: RequestOptions = {
hostname: ProxyURLs.checkIP,
port: 443,
method: HttpMethods.post,
headers: {
'Content-Type': 'application/json',
},
agent: new SocksProxyAgent({
host: proxy.ip,
userId: proxy.login,
password: proxy.password,
port: proxy.port,
type: 5,
timeout: Seconds.two,
}),
};
const req = https.request(httpsOptions, (res) => {
res.on('error', reject);
res.on('data', (data) => {
const parsed = JSON.parse(data);
resolve(parsed);
});
});
req.on('error', reject);
req.end();
});