更新

[重写问题以关注我试图理解的问题。]

JavaScript中是否有一种方法可以引发异常以通知发生问题的行号?与C#的调试器类似,如果在第50行引发错误,则将我带到第50行。

例如,根据MDNEvalError代表eval()的错误。因此,假设我有一个使用eval()的函数。我想使用代表当前问题的特定错误EvalError

//As written here the error implies there is a problem on this line.  See Firebug console window
var evalErra = new EvalError('required element missing from evaluation');

var stringFunc = "a=2;y=3;document.write(x*y);";

EvalString(stringFunc);

function EvalString(stringObject) {
    //Some arbitrary check, for arguments sake let's say checking for 'x' makes this eval() valid.
    if(stringObject.indexOf('x') !== -1) {
        throw evalErra;
        //throw 'required element missing from evaluation';//This way offers no line number
    }
    eval(stringFunc);//The problem really lies in the context of this function.
}


如果我要解决所有这些错误,请告诉我如何处理此类问题。

最佳答案

当您引发错误时,当前代码的执行将停止,并且JS将以其方式备份执行树,直到找到一个catch ()来处理所引发的特定类型的错误,或者一直向上执行。树的错误,导致“未处理的异常”错误:您抛出了一个错误,但没有发现任何错误,现在有人的窗户坏了。

try {
   if (true) {
      throw 'yup'
   }
} catch (e) { // catches all errors
   ... handle the error
}

关于javascript - 如何创建,设计和引发内置的Error对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7958391/

10-13 03:24