【发布时间】:2020-12-15 15:17:41
【问题描述】:
我不认为我在这里尝试在网络浏览器中做不合理的事情。您将如何捕获总是返回的错误?
function tryCatch(try_this, str_default_value){
try {
var test_val = try_this;
return test_val;
}
catch (error) {
return str_default_value;
}
}
tryCatch(digitalData.category.blah, 'default value');
我已经看过 if else 逻辑检查事先但试图避免在父 ex) if digitalData !== undefined、if digitalData.category !== undefined 等上添加 if else 语句。
这是我希望对其进行错误处理的输出:
VM27088:1 Uncaught TypeError: Cannot read property 'blah' of undefined
有什么想法吗?
【问题讨论】:
-
FWIW,如果您正在寻找访问可能不存在的属性的解决方案,您可以使用可选链接:
digitalData?.category.blah。 -
回复@FelixKling 的观点,在您的情况下,您需要
digitalData.category?.blah或digitalData?.category?.blah,因为您遇到的问题是digitalData.category是undefined。 (请注意,可选链是一个相当新的 JavaScript 功能。) -
如前所述,使用
digitalData?.category?.blah ?? 'default value'。 -
可选链非常适合我的情况,谢谢!
标签: javascript exception