Javascript 如何知道错误所在的线路?
在php中,当我们做错了某件事时,就会显示一个错误,其中包含提交错误的行号。我希望在javascript中使用相同的代码,您可以从我的代码中理解:Javascript 如何知道错误所在的线路?,javascript,line-numbers,Javascript,Line Numbers,在php中,当我们做错了某件事时,就会显示一个错误,其中包含提交错误的行号。我希望在javascript中使用相同的代码,您可以从我的代码中理解: var varlist = {}; var private = { str : function(nameArg, valueArg, security){ if (varlist.hasOwnProperty(nameArg) === true){ throw "Variable Existance : variab
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”)写入code>,然后抛出“意外安全级别:在“+line_number+”行输入的“+Security+”是意外的,默认安全级别为低(l)”例如,这里的行号是90。
因此javascript应该抛出以下语句:“意外的安全级别:在第90行输入的o是意外的,默认的安全级别是低的(l)”代码>
我试图寻找这一点,但没有人能帮助我的知识范围
谢谢 默认情况下,Javascript也会抛出错误,但它们不会在屏幕上打印,而是显示在控制台中。按F12打开浏览器的调试/开发模式并刷新页面。如果出现任何javascript错误,它将向您显示错误所在
使用console.log,您还可以将自己的“错误”添加到控制台以进行跟踪。您可以使用在代码中的任何位置获取堆栈跟踪。这段代码抛出并捕获一个伪异常,并返回异常的内容。浏览器支持:Chrome、Firefox、IE(10及以上)、Opera、Safari(6及以上) 您可以使用firebug或js控制台,也可以在这样的代码中使用
var
line=(new Error).stack.split("\n")[4],
nr=line.slice(line.indexOf("at ")+2, line.length);
()好的,但最重要的是我想知道在脚本应该是line.indexOf时,错误发生在哪里