javascript - 使用 JavaScript try/catch,什么是不处理 catch 错误消息的干净方法?

标签 javascript typescript

我有一个 try/catch JavaScript/TypeScript,如下所示:

import ls from 'local-storage';

let user;

try {
  user = ls.get('userInfo');
} catch (e) {
  user = {};
}

我遇到过 ls.get() 返回无效 JavaScript 的情况,这是相当正常的情况,我不想报告或记录错误,我只想将我的用户设置为 {} 如我上面所示。

也就是说,当本地存储为空时,ls.get 会抛出错误,我想确保我处理这种情况并捕获抛出的异常。

是否有一个干净或更好的语法来做到这一点?如果我只是说 catch() 我会得到一个错误。

最佳答案

除了评论中所说的之外,我认为您正在尝试使用 ECMAScript 规范(或 JS 规范)中没有但很快就会出现的东西: Optional Catch Binding

在此之前,如果您没有对应错误的参数(或绑定(bind)变量),您将收到错误消息。不过,您可以将 catch 代码块留空:

let user;

try {
  user = ls.get('userInfo');
} catch (err) {}

编辑:根据tc39 finished proposal page,可选的 Catch Binding 预计将于今年(“预期发布年”)推出。

关于javascript - 使用 JavaScript try/catch,什么是不处理 catch 错误消息的干净方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54693572/

相关文章:

javascript - Javascript 和 ESLint 中的全局变量

javascript - 异步/等待 native 实现

javascript - 复杂的Javascript计算

reactjs - 使用 React、Typescript 和 ES6 进行 Jest 测试

angular - ng build 和 ngc 有什么关系和区别

javascript - 如何在请求调用时将值传递给回调函数?

javascript - 使用 javascript 遍历 XML 节点

typescript - 带有通用参数的 typescript 工厂

ReactJS TS,属性 'match' 在类型 'Readonly<{children?:ReactNode}> & Readonly<MyProps>' 上不存在

typescript - webdriverio 5.7.5 出现错误 $(...).setValue 不是函数