2017-03-02 20 views
2

如果我有在等待異步函數時,是否需要顯式捕獲並重新拋出異常?

async function bar() { 
    throw 'bar'; 
} 

什麼

async function foo() { 
    await bar(); 
} 

async function foo() { 
    try { 
    await bar(); 
    } catch(e) { 
    throw e; 
    } 
} 

聽說我要明確地捕捉和異步函數內重新拋出異常,但我之間的區別假設catch(e) { throw e; }是多餘的(如果沒有額外的處理或在異常再次拋出之前完成記錄)。我相信在其他一些語言中它是如此。那JavaScript呢?

+0

請問您可以包括您的來源說,要做到這一點? – 4castle

+0

@ 4castle這是我團隊的另一位開發人員,但他引用了[本文](https://ponyfoo.com/articles/understanding-javascript-async-await)。雖然我沒有看到這篇文章如何幫助。 – brandaemon

+0

我沒有看到文章說重新拋出異常的地方。是的,它不會像這樣重新投擲。 – 4castle

回答