Javascript:显式抛出错误对象和不抛出错误对象之间的区别

Javascript:显式抛出错误对象和不抛出错误对象之间的区别,javascript,error-handling,throw,Javascript,Error Handling,Throw,在javascript中,我注意到两种抛出错误的方法: (一) (二) 选择一种方式比另一种方式有什么好处吗? 一个被认为是更好的做法吗 感谢基本上,当您使用方法一时,JavaScript隐式抛出一个带有“错误”作为消息的错误对象。除非您需要抛出不同类型的异常(例如,具有解释错误的不同属性的异常),否则方法1是可以的 但是,如果您计划将来抛出更复杂的异常,则需要使用方法2,因为您需要定义要抛出的对象 基本上,就这一目的而言,两者是等效的。我会选择方法2,因为它会让你在未来的道路上保持正确的心态;

在javascript中,我注意到两种抛出错误的方法:

(一)

(二)

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


感谢

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

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


基本上,就这一目的而言,两者是等效的。我会选择方法2,因为它会让你在未来的道路上保持正确的心态;)

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

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


基本上,就这一目的而言,两者是等效的。我会选择方法2,因为它会让你在未来的道路上保持正确的心态;)

一个
错误
对象具有类似
错误.名称
和(在Firefox中)
错误.堆栈


如果需要,请明确抛出错误。然而,大多数人只使用
error.toString()
方法(通常隐式调用)。在后一种情况下,首先创建一个Error对象是过分的,因此抛出一个字符串也同样有效。

一个
Error
对象有类似
Error.name
和(在Firefox中)
Error.stack

如果需要,请明确抛出错误。然而,大多数人只使用
error.toString()
方法(通常隐式调用)。在后一种情况下,首先创建一个Error对象是过分的,因此抛出一个字符串也同样有效

throw "An error";
throw new Error('An object error')