Fetch API: обработка неверного URL - PullRequest
0 голосов
/ 13 октября 2019

Я хочу сделать пуленепробиваемый код, который принимает пользовательский ввод и пытается извлечь данные из URL.

У меня есть что-то вроде следующего:

fetch(url)
.then(response=>{
    console.log(response.ok);
    response.text();
})
.catch(error=>console.log(error));

В дальнейшем есть ещефактический код.

Если я введу что-то вроде http://rubbish, я поймаю TypeError, с которым я могу справиться. Если я введу что-то вроде rubbish (без протокола http://), я получу сообщение об ошибке:

GET file:///…/rubbish net::ERR_FILE_NOT_FOUND

и , тогда получит мой TypeError. Фактическая ошибка возникает в первой строке кода выше, перед блоком catch().

Как правильно обработать ошибку, подобную этой?

Я делаю это вприложение Electron, поэтому мне не нужно беспокоиться о совместимости браузера.

1 Ответ

0 голосов
/ 13 октября 2019

Возможно, вы можете выполнить другую логику в блоке catch в зависимости от типа ошибки. Например:

fetch(url)
.then(response=>{
    console.log(response.ok);
    response.text();
})
.catch(
    if (err instanceof TypeError) {
        // Handle this normally
    } else {
        // Execute other logic depending on the type of error you are receiving
    }
);

Надеюсь, это поможет, удачи :)

...