【问题标题】:Javascript: Difference between explicitly throwing an error object and notJavascript:显式抛出错误对象与不抛出错误对象之间的区别
【发布时间】:2011-08-07 05:09:11
【问题描述】:

在 javascript 中,我注意到了两种引发错误的方式:

1)

throw "An error";

2)

throw new Error('An object error')

选择一种方式比另一种方式有什么优势吗? 是否被认为是一种更好的做法?

谢谢

【问题讨论】:

    标签: javascript error-handling throw


    【解决方案1】:

    基本上,当您使用方法一时,JavaScript 会隐式抛出一个带有“错误”的错误对象作为消息。除非您需要抛出不同类型的异常(例如,具有解释错误的不同属性的异常),否则方法一种就可以了。

    但是,如果您计划在未来抛出更复杂的异常,则需要使用方法 2,因为您需要定义要抛出的对象。

    基本上,为此,两者是等价的。我会选择方法 2,因为它会让你在路上保持正确的心态;)

    【讨论】:

      【解决方案2】:

      Error 对象具有 nice little extras,例如 error.name 和(在 Firefox 中)error.stack

      如果您需要这些,请明确抛出错误。然而,大多数人只使用error.toString() 方法(通常被隐式调用)。在后一种情况下,首先创建一个 Error 对象是多余的,所以抛出一个字符串也可以。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-28
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 2018-02-18
        • 2014-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多