何时使用throw或log错误?

时间:2013-02-27 19:52:08

标签: javascript

我有一个像这样包装console.log的函数。

NS.log("error");

我用于错误记录。这是一个简单的一个班轮,让应用程序开发人员知道出了问题。它不会停止程序流并在控制台中不显眼地显示。

但是,我在大学课程等中听说,使用try / throw / catch是最好的做法,因为它使用了错误控制系统。

但是,我不需要在throw语句后“冒泡”错误。我会立即抓住它:

try {
    throw "error"
} catch (e) {
}

简单地记录错误是否有任何缺点,而不是使用更正式的结构。

我的假设是try / throw / catch适用于更复杂的结构。

但我想确定。

备注:

  • requirejs使用总共抛出4次|没有使用控制台或日志

2 个答案:

答案 0 :(得分:1)

如果它适合你和那些你工作的人那么它是有效的;而且没有必要改变。

技术上try/throw/catch是最佳做法,在大多数语言中都应该使用。

然而,在javascript中,我可以告诉你,try/throw/catch表现相当糟糕。此外,javascript中的许多错误都是动态的。应该处理是的。但是很多人不会破坏你的申请。

那你为什么要让它们冒泡并惹恼你的用户?

TL:DR 我并不劝阻使用try/throw/catch有时你应该使用它,正如@JohnSaunders所说。但是,通常在javascript错误中不会破坏任何内容并且经常使用try/throw/catch来打击性能,这意味着您应该考虑成本/收益在盲目实施之前,这种“最佳实践”的比例。

答案 1 :(得分:0)

我很高兴您正在考虑您的选择并思考整个过程。然而

  1. try语句允许您测试代码块以查找错误。
  2. catch语句允许您处理错误。
  3. throw语句允许您创建自定义错误。
  4. 所以在你的情况下,如果你有某种日志过程,那么使用try catch。 示例

    try {
    
    } catch (e) {
       NS.log(err);
    }
    

    more information /source