おそらく私は、async/await
でエラーをキャッチすることが、このような記事からどのように機能するのかを誤解しました https://jakearchibald.com/2014/es7-async-functions/ そしてこれ http://pouchdb.com/2015/03/05/taming-the-async-beast-with-es7.html しかし、私のcatch
ブロックは400/500をキャッチしていません。
async () => {
let response
try {
let response = await fetch('not-a-real-url')
}
catch (err) {
// not jumping in here.
console.log(err)
}
}()
400/500はエラーではなく、応答です。ネットワークに問題がある場合にのみ、例外(拒否)が発生します。
サーバーが応答したら、それが good であるかどうかを確認する必要があります。
try {
let response = await fetch('not-a-real-url')
if (!response.ok) // or check for response.status
throw new Error(response.statusText);
let body = await response.text(); // or .json() or whatever
// process body
} catch (err) {
console.log(err)
}