gpt4 book ai didi

javascript - 抑制 Javascript 中的 TypeError 异常

转载 作者:行者123 更新时间:2023-12-03 11:13:30 25 4
gpt4 key购买 nike

尝试从 Javascript 中未定义的值中检索值会引发 TypeError 异常。我正在读一本书,书中说您可以使用 && 运算符来防止该错误。但是,它没有说明为什么我想抑制该错误。有人可以解释一下为什么这会有用吗?

最佳答案

当发生 TypeError 时,会引发异常,并且该代码分支将停止执行(如果未处理异常)。这通常是一种不受欢迎的情况。

因此,人们可以编写代码来在尝试访问对象的属性之前检查该对象是否有效。根据您要检查的内容,有多种不同的方法来构造该类型的代码。

例如,如果您有一个对象,并且想要读取其属性,但不确定该对象是否有效,则可以执行以下操作:

function speak(obj) {
if (obj) {
console.log(obj.greeting);
}
}

无论obj是否有效,这种代码都是安全的。如果您取消 if (obj) 检查,那么当 obj 不是有效对象时,此代码将引发异常并停止执行。

<小时/>

另一方面,如果 obj 应该始终是有效对象,并且您希望程序在 obj 不是有效对象时停止执行并出现可见异常,那么您可以不进行 if 检查,只需确保充分测试您的程序,以确保 obj 在使用之前始终有效。在我编写的代码中,是否检查这样的参数通常取决于我是否控制传递给函数的内容,或者是否由其他人控制。如果我能控制,那么我就知道 obj 是否有效或者我是否需要测试有效性。如果其他人在控制之中,那么我不知道 obj 是否始终有效,因此可能需要对其进行测试。

一些库选择的中间立场是提供“调试”模式,使计划外错误非常明显(日志记录),以及“生产”模式,尝试在不停止执行的情况下尽可能地继续运行。 Debug模式或生产模式下的显着不同行为也可能是问题的根源,因此也必须小心。

关于javascript - 抑制 Javascript 中的 TypeError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27449633/

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