try-catch javascript语句中的未识别错误
unidentified bug in a try catch javascript statement
我正在尝试实现一个(非常)简单的try{}catch{}块,它看起来像这样:
try{
var invoice = parseInt(localStorage[0]);
if(invoice == NaN)
throw "invoice not a number";
localStorage[invoice] = Ticket;
console.log("localStorage["+invoice+'] : '+localStorage[invoice]);
}
catch (e){
console.log(e);
this.test();
}
我所做的是用另一个函数手动清除localStorage,从而将localStorage[0]设置为undefined。当我解析Int(localStorage[0])时,它返回NaN,并将其存储到发票中。我在invoice和NaN上使用了double equals条件,所以为了以防万一,即使NaN是一个字符串(它不应该是),它也应该是true。
我的问题是:为什么当我说"投掷…"时,它不称为块的接球部分?
当我运行以下代码时,我在Chrome的控制台中得到以下输出:
localStorage[NaN]:[object object]
它甚至不运行catch块,事实上,它继续运行try块,即使在它应该抛出异常之后也是如此。
为什么会这样?
NaN
不等于它自己,请使用isNaN
。
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jQuery选择器错误:无法识别的表达式
- Angular JS/Rube-on-Rails-控制器未识别错误
- jquery 1.8.0语法错误,无法识别的表达式:>
- Jslint 无法识别错误排序函数的选项
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- 错误:错误:语法错误,无法识别的表达式:
- 属性选择器不起作用(语法错误、无法识别的表达式)
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 如何识别AngularJS中的错误[cdep]
- jQuery:语法错误,无法识别的表达式:.Marketing&通讯
- 识别以下代码中的错误
- 无法识别错误回调
- 如果背景为红色,则jQuery无法识别错误,看起来很容易但很固执
- 提交按钮警报框错误.如何识别错误并修复代码
- try-catch javascript语句中的未识别错误
- jQuery关键字无法识别错误
- javascript的一些bug,我甚至不能识别错误
- 如何识别错误标签的位置