编程语言
首页 > 编程语言> > javascript try catch在Firefox中无法完全正常工作

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