[英]Is it possible to run a JavaScript (NodeJS) command/function and let the program continue if there's an error?
我想知道是否有一種方法可以在JavaScript中運行一個函數,如果運行該函數時出錯,則讓程序忽略它?
player.play('./sounds/throughQueue.mp3', function(err){
if (err) throw err
})
幾乎沒有“ throw err”的情況。
該程序應繼續。
期待您的回答。
正如您在評論中提到的那樣,您想知道如何處理異步函數錯誤。 您可以執行以下操作:
function myAsyncFunction(){
return new Promise((resolve, reject) => {
// do some async anction that returns error
foo.asyncCall((err, item) => err && reject(err))
}
}
myAsyncFunction().catch(e => console.error(e))
如果您觀察到以上代碼,則異步錯誤的處理方式有兩種:
if (err)
並在其中添加任何邏輯。 或者只是忽略它。 Promise
,可以使用reject
,它是構造函數中的第二個參數。 而且當您拒絕錯誤時,可以在該Promise
使用.catch
方法,並使用所需的任何自定義邏輯,無論是新的Promise
調用還是函數回調。 注意我在回調函數中使用了console.error
,您在那里什么都不做,它將被忽略(您的程序將繼續)
是的 ,您可以忽略回調/承諾錯誤或吞下try / catch捕獲的錯誤,但是它只能使執行繼續進行,而不能使行為或結果正確無誤。
總之,我建議您處理可能的錯誤。 畢竟,高質量的軟件才是我們想要的。 並且可能發生的事情最終會發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.