在php中,当我们做错了什么时,会显示一个错误,其中包含已提交的行号。我希望在javascript中你能从我的代码中理解这一点:
var varlist = {};
var private = {
str : function(nameArg, valueArg, security){
if (varlist.hasOwnProperty(nameArg) === true){
throw "Variable Existance : variable "+nameArg +" is already exist in your variable list and cannot be overwritten in private type";
}else if(security === "h"){
var stre = String(valueArg);
var strnew = stre.replace(/\d/g, "");
varlist[nameArg] = strnew;
}else if(security === "l"){
varlist[nameArg] = String(valueArg);
}else if(security !== "h" || security !== "n"){
varlist[nameArg] = String(valueArg);
throw "Unexpected Security Level: Entered " +security+" is unexpected and the default security level is low(l)";
}
}
}
现在查看最后一个throw
语句,如果安全性不是"h"
或"l"
,那么它会抛出异常,如您所见。
现在假设我在我的代码编辑器中在线说90并且在那里我写private.str("abc",9000,"o");
"o"
无效。所以javascript应该找到写private.str("abc",9000,"o");
的行,然后抛出"Unexpected Security Level: Entered " +security+" is unexpected on line "+line_number+" and the default security level is low(l)";
,例如line_number
就是90。
所以javascript应抛出此语句"Unexpected Security Level: Entered o is unexpected on line 90 and the default security level is low(l)";
我试图搜索这个,但没有人可以在我的知识范围内提供帮助
谢谢!
答案 0 :(得分:1)
你可以使用firebug或js控制台,或者像这样的代码
var
line=(new Error).stack.split("\n")[4],
nr=line.slice(line.indexOf("at ")+2, line.length);
(How to get JavaScript caller function line number? How to get JavaScript caller source URL?)
答案 1 :(得分:0)
Javascript默认也会抛出错误,但不是在屏幕上打印它们,而是在控制台中显示。按F12打开浏览器的调试/开发人员模式并刷新页面。如果弹出任何javascript错误,它会显示出错的地方。
使用console.log,您还可以将自己的“错误”添加到控制台进行跟踪。
答案 2 :(得分:0)
您可以使用this technique在代码中的任何位置获取堆栈跟踪。此代码抛出并捕获假异常并返回Error.prototype.stack的内容。浏览器支持:Chrome,Firefox,IE(10及以上版本),Opera,Safari(6及以上版本)。