我主要使用nodejs工作(但我通常對javascript很陌生),但更具體地說expressjs。他們明確地建議使用try和catch模式,但我已經看到其他人建議只是首先嚐試和真正的錯誤。是否首先嚐試捕捉模式比錯誤更好?
即
callback(err, data) {
if (err) throw err;
//do something if no error was returned
}
,而不是
callback(err, data) {
try {
//do something
} catch(err) {
//handle the error
}
}
哪一個被廣泛認爲是做事的更好的辦法?當談到「做某事的唯一方式」時,Javascript非常含糊。
你的第二個例子並不真正意義。到''callback'被調用時,錯誤已經*已經發生或者沒有發生,'err'是錯誤(如果是)或'null'(如果沒有)。這是因爲大多數Node API調用的異步性質,所以在回調函數上有這個標準合約:第一個arg是一個錯誤(如果有的話),第二個是數據(如果有的話)。 (如果API今天正在設計,它會使用承諾,實際上有橋接庫。) –
嘗試catch無法通過V8進行優化! –
你抓到了被拋出的東西;這裏傳遞了'err':錯誤已經發生。 –