ECMAScript 2021 中的 try..catch 增强及用途
在 ECMAScript 2021 中,try..catch 语句得到了一些增强,使得它们在处理异步代码时更加方便和灵活。本文将详细介绍这些增强及其用途,并提供一些示例代码。
- 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 语句将会捕获它,然后将错误打印到控制台。
- 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 语句会捕获该错误并将其打印到控制台。
- 总结
在 ECMAScript 2021 中,try..catch 语句得到了一些增强,使得它们在处理异步代码时更加方便和灵活。除了处理异常外,try..catch 还可以用来处理其他类型的错误,例如用户输入错误或网络连接错误。在编写前端代码时,我们应该熟练掌握 try..catch 的用法,以便更好地处理错误和异常。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65cf2b5aadd4f0e0ff87f96b