在 JavaScript 中使用不带 Catch 的 try 语句

Shraddha Paghdar 2022年6月7日
在 JavaScript 中使用不带 Catch 的 try 语句

今天的文章将介绍在 JavaScript 中不实现 catchtry 语句。

在 JavaScript 中实现没有 CatchTry

JavaScript try 块用于封装可能引发异常的代码。它必须在方法中使用。

如果特定语句中发生异常,则应在 catch 语句中捕获。

语法:

try {
  try_statements
  /* Code to executed */
}
catch (exception_var) {
  catch_statements
  /* Handle exception */
}
finally {
  finally_statements
  /* Final Code/Clean variables */
}
  1. try_statements 是要执行的语句。
  2. catch_statements 是在 try 块中抛出异常时要执行的语句。
  3. exception_var 是一个可选标识符,包含相关 catch 块的异常对象。
  4. finally_statements 是测试语句完成后执行的语句。无论是否抛出或捕获异常,都会执行这些语句。

try 语句由包含一个或多个语句的 try 块组成。 {} 应始终使用,即使对于单个语句也是如此。

必须存在 catch 块或 finally 块。这为我们提供了 try 语句的三种组合。

  1. try...catch
  2. try...finally
  3. try...catch...finally

catch 块包括指定在 try 块中抛出异常时要同时做什么的语句。如果 try 块中的语句(或从 try 块调用的函数中)抛出异常,控制立即切换到 catch 块。

如果在 try 块中没有抛出异常,catch 块将被忽略/跳过。

finally 块总是在 trycatch 块完成执行后执行。无论异常是被抛出还是被卡住,finally 块通常与它内部的语句一起执行。

可以嵌套一个或多个测试语句。如果内部 try 语句没有处理错误的 catch 块,则使用封闭 try 语句的 catch 块代替。

try 语句也可用于处理 JavaScript 异常。如果抛出异常,则 finally 块中的语句最终将执行,即使没有 catch 块处理异常。

你可以在 try...catch 的文档中获得有关 try...catch 的更多信息。

让我们通过下面的例子来理解它。

try {
	console.log("Executing try block")
  throw new Error(0/0)
} finally {
  console.log("Final Call")
}

在上面的例子中,我们定义了一个没有 catchtry。我们通过将 0 除以 0 来抛出错误。

它将抛出一个 NaN 错误,由于缺少 catch 块,finally 块不会捕获该错误,并在 finally 块中打印 "Final Call" 语句。你还可以使用这些块来执行所需的操作并清理 finally 块中未使用的变量/资源。

尝试在任何支持 JavaScript 的浏览器中运行上述代码片段;它将在下面显示结果。

Executing try block
Final Call

演示

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn