https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js 在这个链接中,Douglas Crockford创建了一个json_parse函数,该函数由一个IIFE中的许多函数组成。其中一个内部函数是以下错误抛出函数:
error = function (m) {
throw {
name: 'SyntaxError',
message: m,
at: at, // the variable he stores his incrementing index
text: text // the string from the JSON object
};
},
我对这个错误函数很感兴趣,因为我从未见过像这样编写的错误函数。当我用这样的无用输入测试错误函数时:
json_parse('{123: 123}');
我收到以下错误:
/Users/<user>/src/crockford.js:30
throw {
^
SyntaxError: Bad string
但是如果我回到原始的错误函数并通过删除at和text这样修改错误函数:
error = function (m) {
throw {
name: 'SyntaxError',
message: m
};
},
我最终得到了同样的错误消息。
如果在出现错误时没有显示索引和输入文本到错误消息中,有什么意义?我错过了他的错误函数的结构,目的是什么?
答案 0 :(得分:2)
默认错误处理程序不显示这些属性,但catch
块中的代码可以访问它们,或者您可以在Javascript调试器中查看它们。