js中try catch的执行
<scripttype="text/javascript">varcallback=function(tag){console.log(tag+"callbackhasb...
<script type="text/javascript">
var callback = function(tag){
console.log(tag+" callback has been executed");
}
try {
var a = parseInt("A12B");
callback("try");
}catch(err){
callback("catch");
}
</script>
上面只是做一个测试,为什么parseInt解析出NaN也不抛出错误?还有如果try中某句出错,try中最后的callback函数会不会被调用,js中try catch的语法和java的一致吗? 展开
var callback = function(tag){
console.log(tag+" callback has been executed");
}
try {
var a = parseInt("A12B");
callback("try");
}catch(err){
callback("catch");
}
</script>
上面只是做一个测试,为什么parseInt解析出NaN也不抛出错误?还有如果try中某句出错,try中最后的callback函数会不会被调用,js中try catch的语法和java的一致吗? 展开
2014-03-17
展开全部
如果抛出错误了,你就不知道a=NaN了,抛出异常和返回NaN两者只能选一个,js选择了后者
我想parseInt都返回NaN了,那它还能抛出什么异常?这里callback一定会被调用
和java的用法相似但有差别,比如,catch(err/*这里必须要指定一个名字*/),没法像java那样在catch的()内按照异常类型类捕捉,但可以在catch(err){/*在这里根据err类型来区分,但似乎很少见到有这么用的*/}
展开全部
parseInt解析的过程是从参数str的第一个字符开始解析,如果为非数字,返回NaN;如果为数字,继续解析,直到遇到非数字或解析完,并返回解析的数字。返回NaN并没有出错,不出错当然调用try中回调函数,如果出错,就调用catch里面的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try {
var a = parseInt("A12B");
if (isNaN(a) || !isFinite(a)) {
throw new Error(a + " is NaN or Not Finite !");
}
} catch (e) {
console.error(e);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询