UPDATE 如何创建,设计和扔内置错误对象
[重写的问题集中在我试图理解这个问题。]
有没有在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.
}
如果我要对此都错了,那么请告诉我,我应该如何处理这些类型的问题。
为什么我会看到未捕获的文字字符串错误和未捕获的类型错误EvalError之间的区别? –
你可以扔任何你想要的东西。在'yup'的情况下,你会抛出一个硬编码的字符串,这基本上没有意义。这可能是'扔'哇,真的不是真的,'这会更有帮助。至于EvalError,你会抛出整个对象,并且对象被使用/引用的唯一时间就是它被实例化的那一行,所以这就是错误被报告的地方。 –
更新了问题,尝试将范围缩小到我想解决的问题。 –