Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的大try-catch块_Javascript_Jquery_Callback_Try Catch - Fatal编程技术网

JavaScript中的大try-catch块

JavaScript中的大try-catch块,javascript,jquery,callback,try-catch,Javascript,Jquery,Callback,Try Catch,在JavaScript中使用一个大的try-catch块以便将所有代码封装在jQuery的document ready事件中,这是一种好的做法吗 有些同事编写这样的代码 $(文档).ready(函数(){ 试一试{ //大量代码 } 捕捉(错误){ //发布异常声明 } }); 因此,它们可以处理代码中抛出的任何错误 这是正确的方法吗?如果不是,我应该如何处理JavaScript中的错误?在异步函数中,如何处理回调中的错误?尤其是在document ready中。我认为在JavaScript中

在JavaScript中使用一个大的try-catch块以便将所有代码封装在jQuery的document ready事件中,这是一种好的做法吗

有些同事编写这样的代码

$(文档).ready(函数(){
试一试{
//大量代码
}
捕捉(错误){
//发布异常声明
}
});
因此,它们可以处理代码中抛出的任何错误


这是正确的方法吗?如果不是,我应该如何处理JavaScript中的错误?在异步函数中,如何处理回调中的错误?尤其是在document ready中。

我认为在JavaScript中使用try-catch的大多数开发人员都来自于try-catch块很常见的语言,比如Java

在JavaScript中,即使支持,也有很多缺点

例如,即使回调本身是在try-catch块中按词汇定义的,它也不会捕获任何异步回调

这将为您提供一些关于为什么不建议在JS代码中滥用try-catch的答案

我发现一个主要的缺点是,像V8这样的JS引擎(目前)不会优化try-catch中的任何代码

思想:
就我而言,我习惯于只使用try-catch-around代码,比如

var x = JSON.parse(string);

而且只有当这种操作的结果对于程序其余部分的良好运行不是强制性的,因为这种操作没有真正的错误处理程序可供选择(如果失败,代码将停止工作)。

这是一种糟糕的方法。您不应该将代码包装在一个巨大的try块中(如果有错误,那么您应该修复它,而不是捕获它!)错误处理是另一回事。如果您谈论的是错误,例如XHR中的超时或任何异步函数中的其他错误,则它们很可能会为回调函数提供一个参数。@Derek朕會功夫 我知道我应该修复任何错误,但当它知道发生了错误,例如我想记录它时,我应该怎么做?可能不是一个好主意,但这取决于许多因素。如果出现异常的风险非常低,并且您几乎没有或根本没有时间测试和开发错误处理代码,那么这就是您可能必须要做的。@jecarfor使用开发人员控制台进行调试。它提供了很多信息,包括为进一步调查设置断点。如果要记录客户端错误,需要将代码放入catch块以将其发布到服务器,并让服务器记录它。例如,即使回调本身是在try-catch块中按词汇定义的,它也不会捕获任何异步回调。