16 / 27
Как обрабатывать ошибки в Fetch API?
Fetch reject'ит промис только при сетевых ошибках (нет интернета, DNS не резолвится, CORS заблокирован). HTTP-ошибки (404, 500) не вызывают reject -- промис резолвится с response.ok === false. Поэтому после каждого fetch нужно проверять response.ok или response.status и кидать ошибку вручную. Дополнительно нужно обрабатывать ошибки парсинга тела (невалидный JSON) и ошибки отмены через AbortController (AbortError).