當創建一個將被他人使用的模塊時,是否存在一個標準化的特定錯誤類型,應該拋出來表達未滿足的要求?是否有一個特定的錯誤類型應該用來表達JavaScript中未滿足的需求?
我是一個功能。我需要x。 x是不確定的,我對此感到不安。我扔什麼?
當創建一個將被他人使用的模塊時,是否存在一個標準化的特定錯誤類型,應該拋出來表達未滿足的要求?是否有一個特定的錯誤類型應該用來表達JavaScript中未滿足的需求?
我是一個功能。我需要x。 x是不確定的,我對此感到不安。我扔什麼?
與強類型C-像C#和Java這樣的風格語言,JavaScript並沒有很多開箱即用的異常類型。
try..catch
也是該語言的一個小用途的功能,所以在JavaScript中明確地看到人們明確地使用throw
並不是很常見。
隨着相對較新的語言承諾的引入,特別是async
/await
try..catch
正變得越來越普遍。
只要什麼錯誤具體拋出,它總是取決於個人開發人員,我建議記錄你的API將拋出什麼錯誤。儘管如此,也有內置到語言,並有天然的用例共同錯誤了一把:
Error
- 顯然,這是通用類拋出一個一般性錯誤RangeError
- 拋出此如果輸入不在適當的範圍內,例如您希望獲得正數並且收到負數。ReferenceError
- 通常這是針對不存在的變量,但這對於通過字符串顯示數據訪問的API也很有用。即:
getData('foo') //ReferenceError: 'foo' does not exist in data`
TypeError
- 當一個值是正確類型的不是這代表了一個錯誤(這可能是你想要的)。例如,您有一個需要函數的回調參數,並且用戶提供了一個字符串。
還有更多內置Error
類型不止這些,但他們往往是在野外很少見。
感謝您的詳細回覆。這是我的預期,但我想確認我正在處理的事情。我相信文檔步驟是最重要的組成部分。 –
由於MDN例如,你可以定義然後一個新的異常類扔
這裏是例子。希望幫助:)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw#Throw_an_object
謝謝,但我知道如何自定義錯誤。我正在尋找對這種情況的標準迴應。 –
我真的不明白你的問題。或者您能否提供一個更清晰的問題示例 –
這真的取決於你的開發人員。你應該試着讓你的代碼優雅地死掉,儘管使用try和throwing異常。您可以使用控制檯以不同的方式記錄不同的消息,並且可以讓它說出你想要的東西。
這裏是highliting控制檯消息了良好的國土資源.. https://coderwall.com/p/m2trga/enhance-your-js-console-logging-messages
console.log('console.log');
console.info('console.info');
console.debug('console.debug');
console.warn('console.warn');
console.error('console.error');
缺少的參數方面,我會登錄警告...
if (typeof name === "undefined") {
// ...
}
看看內置函數拋出的錯誤。 – Barmar
'throw「錯誤:問題顯示很少研究,也沒有嘗試解決問題」' – Tibrogargan
我實際上一直在研究它。謝謝你讓你的鼻子太高,以至於很有用。對於在SO上提出問題抱歉。 –