javascript - 如何知道错误在哪一行?

标签 javascript line-numbers

在 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意外线路“+line_number+”,默认安全级别为低(l)”;,例如,line_number 为 90。 所以 javascript 应该抛出这个语句“意外的安全级别:在第 90 行输入的 o 是意外的,默认安全级别为低(l)”;

我试图搜索这个,但没有人能在我的知识范围内提供帮助

谢谢!

最佳答案

你可以使用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? )

关于javascript - 如何知道错误在哪一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22640025/

相关文章:

C# 异常行号始终为零 (0)

java - 从 MapReduce 映射器中的输入文件获取唯一行号

android - TextView 中的行号、代码高亮显示

eclipse - 第二台显示器上的行号未更新 - Eclipse STS 2.8.1RELEASE - OS X Lion

Javascript:2 个具有相同 "weight"的数组

javascript - 如何将 Handlebars 值插入 Rails link_to 帮助器中?

javascript - 在运行时动态创建和存储算法

javascript - 当一个选择框选项更改时,两个选择选项也会更改

javascript - 在变量中而不是在文档中使用 querySelector

html - 仅使用 css 在代码块上显示行号