gpt4 book ai didi

javascript - 从 JS 中的对象中捕获错误

转载 作者:行者123 更新时间:2023-12-03 08:35:34 25 4
gpt4 key购买 nike

目前我有一个模块构建器。在此脚本的精简版中,会触发一次正文点击 foo()这会引发错误。我想将一个错误处理程序附加到整个模块对象以捕获其中抛出的任何内容,不仅在创建期间,而且在运行时。是否可以?

目前,“foo alert”出现在控制台中。我想抑制这一点,让中央记录器做必要的日志。在这种情况下,我想看到“记录”。

$(function() {

var moduleCollection = {};

//creates modules, stores them and returns for reference
function define(name, def) {
var newModule = def(); //creates the module object
moduleCollection[name] = newModule; //store

//somewhere here, i must attach some sort of
//error handlers for the module
//something like:
newModule.onerror = function(){
//execute error procedure (like logging)
console.log('logged');
}

return newModule //return as reference
}

//a module definition
var mymod = define('mymod', function() {
//foo chokes unintentionally and results into an error
function foo() {throw new Error('foo alert');}

function start() {
//a body click calls foo
$('body').on('click', function() {foo()});
}
return {start: start}
});

//start module
mymod.start()

});​

最佳答案

如果需要,您需要添加 trycatch在代码执行的每个级别。

也就是说,在“定义”时,在您的构造函数(如果存在)、每个方法体和每个事件处理程序中。

另外,也许这只是您的示例代码,但是:

$('body').on('click', function() {foo()});

可能只是这样:
$('body').on('click',foo);

关于javascript - 从 JS 中的对象中捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10052624/

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