为什么我需要避免在循环内使用 try-catch-finally

2023-12-24

每次执行 catch 子句(将捕获的异常对象分配给变量)时,try-catch-finally 构造都会在运行时在当前作用域中创建一个新变量。

而不是使用...

var object = ['foo', 'bar'], i;  
for (i = 0, len = object.length; i <len; i++) {  
    try {  
        // do something that throws an exception 
    }  
    catch (e) {   
        // handle exception  
    } 
}

为什么要用这个?

var object = ['foo', 'bar'], i;  
try { 
    for (i = 0, len = object.length; i <len; i++) {  
        // do something that throws an exception 
    } 
} 
catch (e) {   
    // handle exception  
} 

有没有第一个选项比第二个选项更好的情况?我写代码的时候是跟着感觉走的,但是最近就在想这个,不知道还能想什么。哪种解决方案更适合什么用途?


如果对象内容抛出的单个异常还没有严重到足以停止整个程序,第一个“for...try”构造是最好的。如果您可以使用默认值或丢弃错误信息,那么这就是正确的方法。

如果满足以下条件,“尝试...”结构是最好的:any对象内容抛出的异常应该会使您的代码失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我需要避免在循环内使用 try-catch-finally 的相关文章

  • 如何将大数据传递给网络工作者

    我正在研究网络工作人员 并将大量数据传递给网络工作人员 这需要很多时间 我想知道发送数据的有效方式 我尝试过以下代码 var worker new Worker js2 js worker postMessage buffer buffer
  • 在画布中心写入 (0,0)-HTML5

    I m currently developing a drawing app which allows the user to click and drag to determine the size of the shape and al
  • 替换文本区域的文字

    我制作了一个 javascript 函数来将文本区域中的某些单词替换为其他单词 但它不起作用 我做了这个 function wordCheck var text document getElementById eC value var ne
  • javascript 可以从父页面访问 iframe 元素吗?

    我的页面上有 iframe iframe 和父页面位于不同的域中 父页面上的 javascript 代码可以访问此 iframe 内的元素吗 如果页面来自不同的域 则不应该这样做 浏览器安全沙箱应该阻止这种类型的访问 当两个页面来自不同的时
  • Angular 2 TypeError:无法读取 null 的属性“animate”

    我正在使用 Chrome 51 和 Angular 2 rc4 并在加载我的 Angular 应用程序时在控制台中弹出以下错误 TypeError Cannot read property animate of null at e supp
  • 各种 Javascript 优化项目如何影响 DOM 性能?

    通过 Tracemonkey Squirrelfish 和 V8 项目 大量 C S 计算机科学融入了 Javascript 这些项目 或其他项目 是否解决了 DOM 操作的性能问题 或者它们纯粹与 Javascript 计算相关 纯 DO
  • 如何在 Bootstrap 中将单选按钮设置为“选中”? [复制]

    这个问题在这里已经有答案了 我使用 Bootstrap 按钮作为单选按钮 http getbootstrap com javascript buttons http getbootstrap com javascript buttons 这
  • 如何使用React Native在屏幕上绘图?

    我正在尝试在 React Native 中实现一个 Android 绘图应用程序 我正在使用 PanResponder 但我不知道如何获取用户触摸的部分的坐标 我尝试过使用react native svg但我不知道该放在哪里PanRespo
  • Bootstrap 页脚不在底部

    我试图强制我的页脚位于网站底部 我不希望它在滚动时粘住 只是在向下滚动网页时出现在底部 目前 网页显示时页脚位于内容下方 我添加了这样的代码bottom 0 并发现它粘住了并且不适合我的网站 我还添加了这样的代码html body heig
  • 禁用拉斐尔论文上的浏览器上下文菜单

    我有一篇拉斐尔论文定义为R1 Raphael 0 0 800 600 我想在本文中禁用上下文菜单 以便我可以捕获鼠标右键单击事件 我没有这样的Raphael someDiv 800 600 禁用 div 的 oncontextmenu 属性
  • 在 Javascript 中隐藏按钮

    在我最新的程序中 有一个按钮 单击时会显示一些输入弹出框 这些框消失后 如何隐藏按钮 You can set its visibility财产 http www w3schools com cssref pr class visibilit
  • `forEach` 函数中的 `return` 关键字是什么意思? [复制]

    这个问题在这里已经有答案了 button click function 1 2 3 4 5 forEach function n if n 3 it should break out here and doesn t alert anyth
  • Javascript CORS 图像/画布操作

    我正在尝试从另一个已配置为允许 CORS 的域检索图像 并操纵像素 然后我想显示结果并能够操纵结果 我可以在我请求的图像上使用 getImageData 和 toDataURL 所以我知道服务器部分可以工作 但是 当我尝试将图像的 src
  • jQuery onclick 隐藏其父元素[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想隐藏 li tag on a 使
  • 在 Bootstrap 选择器上使用 jQuery 取消选择选项

    我对一些 UI 元素使用 Bootstrap SelectPicker 它允许用户选择多个选项并将其呈现在段落标签中的屏幕上 他们还应该能够删除选定的选项 这是我的代码 用于将选定的选项渲染到屏幕上 以便每个选项旁边都会显示一个 X 单击它
  • LightningChart JS - LineSeries / Progressive X 的损坏

    我在使用 LightningChart 时遇到了一个有趣的问题 它似乎会破坏或以其他方式减少我的数据 具体取决于它与图表的 DateOrigin 的距离 我的数据是每秒 1000 个样本 我试图一次显示 1 2 周的数据 我正在使用 Cha
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 尝试将远程图像转换为 Base64 数据时出现 CORS 错误[重复]

    这个问题在这里已经有答案了 我需要将远程图像转换为给定其 URL 的 base64 但我遇到了 CORS 错误 并且不确定如何解决 我遵循了这个问题的一些解决方案 如何使用javascript将图像转换为base64字符串 https st
  • React cloneElement 未设置键

    我正在构建一个动态生成键的表控件 我理解这可能不是一个好主意 我想键应该与其代表的数据唯一关联 否则 React 只能为我们生成唯一的 id 但无论哪种方式似乎没有设置按键 我不知道为什么 表中的行是用可以找到的函数生成的here http
  • JavaScript 模板文字稍后替换变量(在知道值之前)

    是否可以在已知值之前以某种方式使用模板文字 JS 模板文字的每个演示都如下所示 var name John var s Hello name 但在现实世界中 模板是在我们知道变量值之前定义的 某处定义了模板 在页面加载时 var s Hel

随机推荐

  • Backbone.js - 从集合创建中获取 id

    我正在使用以下方法将模型添加到集合中create方法和 api 响应良好 模型似乎已正确返回并查看console dir resp 这就是我一直在寻找的东西 但是 当我尝试访问时runningorderid 哪一个是id定义为idAttri
  • jQuery 函数语法差异

    如何 function code jQuery 与 不同 document ready function 在jquery中 我知道什么是ready函数确实如此 它会等待 HTML 加载完毕后再开始 然而 确实 function 照着做 我知
  • 从远程 Git 存储库中删除所有文件和历史记录,而不删除存储库本身

    如果有人能告诉我如何删除 git 存储库上的每个文件 文件夹而不实际删除存储库本身 我将不胜感激 我也想删除与这些文件相关的所有历史记录 正如我所解释的这个答案 https stackoverflow com questions 18112
  • 将图像文件保存到临时目录

    我有一个名为 Image png 的图像文件 它保存在我的主包中 位于项目导航器层次结构中的 ViewController swift 文件旁边 我想将此图像的副本保存到临时目录 我以前没有做过 请问我可以使用什么代码 像这样的事情应该可以
  • scrapy 不打印异常的堆栈跟踪

    是否有一种特殊的机制来强制 scrapy 打印出所有 python 异常 堆栈跟踪 我犯了一个简单的错误 错误地获取了列表属性 导致 AttributeError 没有在日志中完整显示 出现的是 2015 11 15 22 13 50 sc
  • LinqKit 谓词生成器抛出 TypeLoadException?

    我在尝试执行使用 PredicateBuilder 动态构建的查询时遇到问题 我能够构建查询 但是在执行查询本身时 我得到以下 TypeLoadException 运行时 return context SearchRecords AsExp
  • 在Python中使用libclang解析C++

    经过一些研究和几个问题后 我最终探索了libclang https pypi python org pypi clang 3 5库以便在 Python 中解析 C 源文件 给定一个 C 源代码 int fac int n return n
  • 没有模板参数的模板类的容器

    我想知道您是否可以拥有一个包含具有不同模板参数的对象的容器 我正在努力实现这样的目标 include
  • 单击时发生指针事件,但滚动时不发生指针事件

    是否可以允许单击但不允许滚动事件 pointer events none 将禁用两种类型的输入 我想仅禁用滚动 还有其他解决方法的想法吗 添加这个CSS stopScroll height 100 overflow hidden 然后在 j
  • 如何判断线段是否在多边形内部?

    我们有一个线段L由两点定义从多边形和一个多边形P由 4 个或更多点定义 我需要一个算法来确定是否L在里面P 编辑 线段必须完全位于多边形内部 如果仅部分位于多边形内部 则将其定义为外部 例如看下图 再举几个例子 Step 1 L 是否穿过
  • 关于 addBatch(String) 的注意事项

    旁边的addBatch 的方法PreparedStatement还有一个addBatch String 方法中的Statement class 我想处理一系列不同的 sql 语句 并且正在寻找有关 addBatch String 性能方面含
  • id 为“xxxx”的进程未在 Visual Studio 中运行(包括 2013 至 2017~ 版本)

    我无法从 Visual Studio 2013 运行任何应用程序 它会抛出 ID 为 xxxx 的进程未运行消息 我也用过 Telerik 我尝试了互联网上的所有解决方案 除了重新安装 Visual Studio 但没有任何帮助 请帮助 谢
  • 如何在 Java 中复制 PostgreSQL 的 uuid_generate_v3()?

    PostgreSQL create extension if not exists uuid ossp select uuid generate v3 uuid nil this is a test uuid generate v3 e1e
  • 电路如何再次闭合?

    我正在尝试理解 Hystrix 据我所知 当服务调用第三方服务并且该服务没有响应并且阈值已超过配置时 电路将被打开 并且后续呼叫将被短路 但我无法理解电路如何再次闭合 让我们假设我们的服务正在调用第三方服务 并且该服务无法正常工作 因此电路
  • 在 Mac OS X 中修改窗口按钮颜色

    如何修改 Mac OS X 中用于关闭 最小化 缩放的红色 黄色 绿色窗口按钮 某处必须有可编辑的资源或 plist 以下是我正在谈论的按钮 对于红 绿色色盲的人来说 这些颜色可能会让人抓狂 我希望他们选择交通灯中使用的真正的蓝色阴影 而不
  • 具有自定义 bin 边缘的 ggplot2 密度直方图

    我能够绘制密度直方图 并且能够使用自定义箱绘制常规直方图 但不能同时绘制两者 这是我的尝试 library ggplot2 vals c 2 6 5 2 4 1 6 9 5 7 5 2 4 4 5 5 6 3 6 1 4 7 1 4 myp
  • 包括静态库到./configure

    如何在执行命令时包含两个静态库 configure Ex configure prefix usr LDFLAGS L home lancy dictionary src WordNet 3 0 lib lWN 这里只包含一个静态库 我如何
  • 问题使用 msbuild 构建具有多个配置的单个项目

    Issue 我们在解决方案中使用配置转换 例如 调试 测试 登台 发布 但是 这些配置仅用于我们的 MVC 项目 所有的库只使用调试和发布 这更有意义 因为我们的库只需要在调试模式或发布模式下构建 尝试从命令行构建单个项目时会出现此问题 我
  • 在 Angular 13 中实现 Monaco 编辑器

    在 Angular 13 中实现 Monaco 编辑器的最佳选择是什么 我见过 ngx monaco editor 但上次更新是 9 个月 它已经升级到 Angular 12 Monaco 版本也有 0 20 0 11 02 2020 非常
  • 为什么我需要避免在循环内使用 try-catch-finally

    每次执行 catch 子句 将捕获的异常对象分配给变量 时 try catch finally 构造都会在运行时在当前作用域中创建一个新变量 而不是使用 var object foo bar i for i 0 len object len