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