我想知道你们中是否有人尝试使用JavaScript的异常处理机制来捕获诸如RangeError,ReferenceError和TypeError之类的错误?

例如RangeError:

try {
var anArray = new Array(-1);
// an array length must be positive

         throw new RangeError("must be positive!")
}
catch (error) {
         alert(error.message);
         alert(error.name);
}
finally {
         alert("ok, all is done!");
}

在上述情况下,我是否要抛出一个新的RangeError对象?

Cos我在alert(error.message)处的代码示例未显示用户定义的消息“必须为肯定”。

我该怎么办才能抛出自己的RangeError对象(以及ReferenceError,TypeError)?

最好。

最佳答案

这已经快一年了,但我认为迟到总比不到好。它取决于浏览器,但是在某些情况下(咳嗽,咳嗽,FIREfox,咳嗽),RangeError继承了Error对象的message属性,而不是提供它自己的。恐怕唯一的解决方法是抛出new Error("must be positive!")。抱歉。

10-01 23:57