介绍
ES11 中引入了可选 catch 绑定,可以将 catch 语句中的异常对象省略。这样做的好处是可以减少代码量,使代码更加简洁易读。
在 ES10 及更早版本中,如果我们使用 try-catch 语句来捕获异常,必须在 catch 语句块中提供一个异常对象参数。这通常会导致一些模板代码的生成,尤其是在我们对错误对象作出响应时时。
然而,ES11 可选 catch 绑定语法使得我们只需要为 catch 语句块提供一个空参数,并在 catch 语句块中直接使用 catch 关键字来表示异常对象。这样就能够省去为异常对象定义的参数。
实现
看一个简单的例子:
--- - -- -- --------- - ----- - -- ------ --- ----- -
在这个例子中,我们使用了可选 catch 绑定。因为我们没有提供任何异常对象参数,而是直接在 catch 块中使用关键字“catch”表示异常对象。
深度解析
在可选 catch 绑定中,catch 关键字表示异常对象,在 catch 最上层块的作用域内定义一个错误数据变量来保存错误信息。
所以,我们可以使用以下两种等效的方法访问错误对象:
--- - -- -- --------- - ----- ------- - -- ------ --- ----- -
--- - -- -- --------- - ----- - ----- ----- - ------- -- ------ --- ----- -
特别的,如果你已经有了一个定义的错误变量名称,则可以通过在 catch 子句中省略参数来重用该错误变量。
--- ------ --- - -- -- --------- - ----- - ----- - ------- -
使用
下面是一个使用可选 catch 绑定的具体例子:
-------- ------------- - ------ ------------------------ -- - -- -------------- - ----- --- ----------- ------ ------- --------------------- - ------ ---------------- ------------ -- - ------ -------------------------- -------- - -------------------- --- - ------- ---------- --- --------- - -
在这个例子中,我们通过 fetch 方法获取图像(blob),如果响应不是“200 OK”状态,则抛出错误和相关信息。然后我们将 blob 转换为一个 URL,然后返回该 URL。
最后,我们使用可选 catch 绑定语法来在出错时打印错误信息。这样就可以省略常规 catch 语句中的括号和错误对象参数。
结论
ES11 中引入的可选 catch 绑定语法是一项非常好的改进。它可以使代码更加简洁、易读,并且减少了不必要的模板代码。当你使用可选 catch 绑定时,在注重可读性的同时,还能以更少的代码来实现错误处理。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/66f68a1ec5c563ced588e30b