gpt4 book ai didi

javascript - jQuery 异常处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:52 26 4
gpt4 key购买 nike

有什么方法可以在 javascript 中捕获任何未捕获的异常?我的意思是,我所有的“危险”代码都在 try-catch block 中。但是我没有明确处理的异常呢?我正在使用 jQuery,我的主要 javascript 文件以 :

开头

$(文档).ready(function(){})

这里我将一些事件绑定(bind)到一些 DOM 元素上。我可以在这里使用 try-catch block ,但它们会捕获在事件绑定(bind)过程中发生的异常,而不是在事件处理过程中。但是,如果我在每个事件处理函数中都使用 try-catch block ,那将很难看。

我应该如何捕获未在我的显式 try-catch block 中发生的异常? (我不想写一个通用的处理函数,我只想把问题发送到我的服务器)

最佳答案

您可以编写一个函数,将您的真实处理程序包装在 try/catch 中

function tc(func, msg) {
msg = msg || "Handler exception";
return function(e) {
try {
return func(e);
}
catch (exc) {
$.post( /* send exception to server? */ );
throw exc; // let nature take its course
}
};
}

(可能想在参数处理等方面变得更有趣)然后当你绑定(bind)处理程序时,你会这样做:

$('#whatever').click(tc(function(e) {
// your handler function
}, "This is the message sent to the server when this handler fails"));

此外,如果您想确保处理程序中的“this”行为与以前一样,您可以改为执行 func.apply($(this), e)只是 func(e)

关于javascript - jQuery 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084924/

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