javascript - 在JavaScript中不指定catch参数/标识符,可以使用try/catch?

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

工作版本:

 

try{


 //Breaking code


} catch(e){


 //Nothing happens here


}



我想知道的是(无e'):

 

try{


 //Breaking code


} catch(){


 //Nothing happens here


}



时间:

规范给出了catch的语法:

Catch :

catch (Identifier )

当catch子句捕获异常时,它标识符将绑定到该异常,

因此,从catch 块中省略标识符是一个语法错误。

简单地省略括号,如下所示:

 

try {


 //Code...


} catch {


 //Code...


}



2019中的可选捕捉绑定

Node.js

在node.js中,此特性称为可选捕捉绑定,并支持node.js版本10.3之后,见 https://node.green 。

在typeScript 版本2.5中,这是允许的.

浏览器支持

Chrome:从68 Edge开始,IE,Safari: no Firefox : since 58

标准

方案目前处于4阶段,意味着其实现已完成,并且保证将它包含到ECMAScript标准的下一版本中。

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

 

try {



} catch {


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


}



...