Because window.fetch
isn't designed to transparent about the cause of request errors, we have to come up with our own solutions.
The basics:
All operational errors are rejected as FetchError, you can handle them all through promise catch
clause.
All errors comes with err.message
detailing the cause of errors.
All errors originated from node-fetch
are marked with custom err.type
.
All errors originated from Node.js core are marked with err.type = system
, and contains addition err.code
and err.errno
for error handling, they are alias to error codes thrown by Node.js core.
Programmer errors are either thrown as soon as possible, or rejected with default Error
with err.message
for ease of troubleshooting.
List of error types:
FetchError
types, as well as some of the common errors from Node.js