JS很多函数是高容错性的,多层调用时,某一层抛出异常,异常逐层向外抛出,如果异常被当中的某一层所“包融”了,则这一层之外就捕捉不到异常了。看下面两个?:
try { $btn.click(function () { var x = parseFloat($('#x').val()), y = parseFloat($('#y').val()), r; if (isNaN(x) || isNaN(y)) { throw new Error('输入有误'); }else{ r = x + y; alert('计算结果:' + r); } }); } catch (e) { alert('输入有误!'); } //被jQuery.click()所包融了。应改为: $btn.click(function () { try { var x = parseFloat($('#x').val()), y = parseFloat($('#y').val()), r; if (isNaN(x) || isNaN(y)) { throw new Error('输入有误'); } r = x + y; alert('计算结果:' + r); } catch (e) { alert('输入有误!'); } }); //成功捕捉
不知道这样理解对不对
Sign in to make a reply
呐呐201911
JS很多函数是高容错性的,多层调用时,某一层抛出异常,异常逐层向外抛出,如果异常被当中的某一层所“包融”了,则这一层之外就捕捉不到异常了。看下面两个?:
不知道这样理解对不对