javascript try catch在Firefox中无法完全正常工作
作者:互联网
有人可以解释一下为什么这样:
<html>
<head></head>
<body>
<script>
try {
document.attribute-withminus = 5;
}
catch(e) {
alert('something went wrong');
}
alert('ok');
</script>
</body>
</html>
不会给我“出现问题”警报,也不会给我“确定”警报吗?
它在chrome中效果很好.但是在firefox中,它只是退出(它确实在Web控制台中显示错误). try-catch的全部目的是确保如果我输入错误,它应该给我一个警告.我不想一直打开Web控制台.
另外,我知道这里有什么问题(减号属性;应使用setAttribute).我在问为什么我的错误没有被发现.
解决方法:
document.attribute-withminus = 5;
是语法错误(可能类似于“分配中的无效左手部分”),它是early error,而不是运行时错误.
浏览器不应执行包含该脚本的脚本,而是应在编译任何包含评估错误的代码后立即停止并报告错误.在大多数浏览器中,脚本会在到达try子句之前被完全编译.它可以在Chrome中运行,因为Chrome会延迟编译,直到需要内部块为止.
标签:firefox,try-catch,javascript 来源: https://codeday.me/bug/20191029/1963074.html