2015-10-26 14 views
6

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をキャッチしません。try..catchエラーが発生しました

async() => { 
    let response 
    try { 
    let response = await fetch('not-a-real-url') 
    } 
    catch (err) { 
    // not jumping in here. 
    console.log(err) 
    } 
}() 

example on codepen if it helps

+0

AFAKフェッチAPIが400/500エラーをconsidterいけません – VeXii

答えて

14

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) 
} 
関連する問題