应该在JavaScript中抛出什么类型的对象?
我看到很多examples抛出了一个普通的 string ,似乎有一个半标准的Error类型 . 我应该更喜欢一个吗?
string
Error 对象和特定错误对象(如 TypeError )在ECMAScript规范中完全标准化 . 但是,大多数浏览器都有这些对象的常见非标准属性 .
Error
TypeError
只要您的错误处理代码知道如何处理您抛出的对象,您就可以抛出任何您喜欢的东西,但使用 Error 对象有一些优点:
message
fileName
lineNumber
1 回答
Error
对象和特定错误对象(如TypeError
)在ECMAScript规范中完全标准化 . 但是,大多数浏览器都有这些对象的常见非标准属性 .只要您的错误处理代码知道如何处理您抛出的对象,您就可以抛出任何您喜欢的东西,但使用
Error
对象有一些优点:message
属性,因此您不必编写不同的代码来处理本机错误和您自己的错误;Mozilla和其他浏览器中的
Error
对象具有非常有用的非标准属性,例如fileName
,lineNumber
和stack . 您只能在Error
对象上获取这些对象,它们对于调试非常有用 .