更新
[重写问题以关注我试图理解的问题。]
JavaScript中是否有一种方法可以引发异常以通知发生问题的行号?与C#的调试器类似,如果在第50行引发错误,则将我带到第50行。
例如,根据MDN,EvalError
代表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/