我可以在不指定 catch 参数/标识符的情况下在 JavaScript 中使用 try/catch 吗?

新手上路,请多包涵

我想知道是否有一种方法可以在执行 JS try/catch 时不指定参数。每次我尝试这个时,try/catch 都不起作用。

工作版本:

 try{
  //Breaking code
} catch(e){
  //Nothing happens here
}

我的想法(没有’e’):

 try{
  //Breaking code
} catch(){
  //Nothing happens here
}

原文由 Dean Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 498
2 个回答

2019 年的可选捕获绑定

节点.js

在 Node.js 中,此功能称为 Optional Catch Binding,自 Node.js 版本 10.3 起受支持,请参阅 https://node.green

打字稿

在 Typescript 中,这是从 2.5 版开始允许的。

浏览器支持

  • 铬:自 68
  • Firefox:自 58
  • Edge、IE、Safari:暂不支持

标准

该提案目前处于第 4 阶段,这意味着它的实现已经完成,并且保证会包含在下一版本的 ECMAScript 标准中。

因此,如果您使用 Node.js 或使用 Babel 转译您的浏览器代码,那么根据标准,这是一个完全合法的语法:

 try {

} catch {
  // No need for the `(error)` after `catch`!
}

原文由 user6269864 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个过时的答案。它不再适用于当前版本的 JavaScript。有关详细信息,请参阅其他答案。


你就是做不到。 规范 说在 catch 之后的括号内必须始终有一个标识符。

原文由 Jon 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题