ECMAScript 2021 中的 try..catch 增强及用途

ECMAScript 2021 中的 try..catch 增强及用途

在 ECMAScript 2021 中,try..catch 语句得到了一些增强,使得它们在处理异步代码时更加方便和灵活。本文将详细介绍这些增强及其用途,并提供一些示例代码。

  1. try..catch 增强

在 ECMAScript 2021 中,try..catch 语句可以捕获 Promise 异常,并且可以在 catch 语句中使用 await 关键字。具体来说,try..catch 语句中的 await 关键字会暂停 catch 语句的执行,直到 Promise 被 resolve 或 reject。

下面是一个示例代码,展示了如何使用 try..catch 来处理 Promise 异常:

----- -------- -------------- -
  ----- -------- - ----- -----------
  -- -------------- -
    ----- --- -------------- -------- --- --- -----
  -
  ----- ---- - ----- ----------------
  ------ -----
-

----- -------- --------- -
  --- -
    ----- ---- - ----- --------------------------------------
    ------------------
  - ----- ------- -
    ---------------------
  -
-

----------

在上面的代码中,fetchData 函数返回一个 Promise,如果网络响应不是 OK 的,就会抛出一个错误。getData 函数使用 try..catch 来处理 fetchData 函数可能抛出的错误。如果 fetchData 函数抛出了一个错误,catch 语句将会捕获它,然后将错误打印到控制台。

  1. try..catch 的用途

try..catch 语句的主要用途是捕获代码执行过程中可能发生的异常。在异步代码中,try..catch 可以用来处理 Promise 异常,从而避免代码中断执行。

除了处理异常外,try..catch 还可以用来处理其他类型的错误,例如用户输入错误或网络连接错误。下面是一个示例代码,展示了如何使用 try..catch 来处理用户输入错误:

-------- --------------- ----- --------- -
  --- -
    ------ ---------- -
      ---- ----
        ------ ---- - -----
      ---- ----
        ------ ---- - -----
      ---- ----
        ------ ---- - -----
      ---- ----
        -- ----- --- -- -
          ----- --- ------------- ------ -- -------
        -
        ------ ---- - -----
      --------
        ----- --- -------------- -----------
    -
  - ----- ------- -
    ---------------------
  -
-

------------------------- -- ------

在上面的代码中,calculate 函数接收三个参数:num1,num2 和 operator。函数中使用 switch 语句来根据 operator 计算 num1 和 num2 的结果。如果 operator 是除法运算符并且 num2 等于 0,则抛出一个错误。如果 operator 不是有效的运算符,则抛出另一个错误。如果没有发生错误,函数将返回计算结果。

在调用 calculate 函数时,我们传递了 10、0 和 "/" 作为参数。由于 num2 等于 0,函数会抛出一个错误,然后 catch 语句会捕获该错误并将其打印到控制台。

  1. 总结

在 ECMAScript 2021 中,try..catch 语句得到了一些增强,使得它们在处理异步代码时更加方便和灵活。除了处理异常外,try..catch 还可以用来处理其他类型的错误,例如用户输入错误或网络连接错误。在编写前端代码时,我们应该熟练掌握 try..catch 的用法,以便更好地处理错误和异常。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65cf2b5aadd4f0e0ff87f96b