gpt4 book ai didi

javascript - 如何获取导致 JavaScript 中抛出 ReferenceError 的变量?

转载 作者:太空宇宙 更新时间:2023-11-04 15:36:55 25 4
gpt4 key购买 nike

这可以通过获取实际的变量名称或详细的错误消息(如浏览器控制台中打印的消息)来完成

try {
alert(v); // v is undefined so a ReferenceError will be thrown
}
catch(err) {
alert(err.getVariableName()); // should return "v"
}

更新 1:我希望从外部 JS 文件处理此错误,因此我尝试了以下操作:

<script>window.onerror = function(e){ console.log("caught error: "+e.message); return true;}</script>
<script src="faulty.js"></script>

但是它返回 e.message 的未定义,尽管 e.message 在 try-catch 语句中使用时可以正常工作,如 @Badacadabra 的答案中所述

最佳答案

如果您只想要名称,可以在 err.message 上使用 String.prototype.split():

try {
alert(v);
} catch (err) {
alert(err.message.split(' ')[0]);
}

<小时/>

编辑

window.onerror 处理程序具有特定的签名。它的第一个参数是错误消息,最后一个参数是 Error 对象。对于您的情况,您可以这样做:

window.onerror = function (msg, url, line, col, err) {
console.log(err.message.split(' ')[0]);
}

alert(v);

或者只是这样:

window.onerror = function (msg) {
console.log(msg.split(' ')[1]);
}

alert(v);

关于javascript - 如何获取导致 JavaScript 中抛出 ReferenceError 的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44272856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com