当我想发送和使用Javascript时出错:
抛出新的错误()
它有效,但如果我传递一个数字,例如:
抛出新错误(500)
结果是:
错误:500
其中'错误:'是一个字符串。
我有一个处理这个错误的函数,这个函数必须知道错误的代码,如何检索它?我必须解析字符串吗? : - (
谢谢。
答案 0 :(得分:4)
如果以这种方式抛出错误,括号内的文本将成为错误消息。您也可以使用a custom Error Object投掷。
一个非常有用的链接:The art of throwing JavaScript errors
答案 1 :(得分:1)
错误实例具有message
属性,这是您应该分析的内容,而不是它打印到控制台的内容(Error.prototype.toString
)。
答案 2 :(得分:1)
请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error - 错误消息始终是字符串。即使你传递一个数字,它也会被隐式转换为字符串。
Error: 500
是Error
对象的默认字符串表示形式 - 如果将此对象转换为字符串或直接调用error.toString()
,则会获得该字符串。如果您对错误消息感兴趣,则应直接访问该消息 - parseInt(error.message, 10)
应该这样做。
答案 3 :(得分:1)
我强烈建议不要抛出错误。尝试捕获是昂贵的,一次滑倒将意味着您的服务器关闭。
我建议您使用事件方法,包括eventemitters是您的大部分代码。
这样你就可以this.emit("error", new Error(500))
答案 4 :(得分:0)
如果我得到你所说的,请使用一些RegExp提取数字?
答案 5 :(得分:0)
您实际上不需要使用Error对象。你可以写throw
,然后写一个你想要被catch块捕获的东西。
这个小代码片段在警告框中显示500个。
function throwError(msg){
throw msg;
}
try{
throwError(500);
}catch(e){
alert(e);
}
如果您使用e
对typeof
进行测试,则会返回数字。