📜  JavaScript try … catch … finally语句(1)

📅  最后修改于: 2023-12-03 14:42:27.527000             🧑  作者: Mango

JavaScript try…catch…finally语句

在 JavaScript 中,try、catch、finally 是一种异常处理的方式,可以在代码发生异常时进行捕捉和处理,防止程序运行崩溃。本文将详细介绍 JavaScript 中的 try…catch…finally 语句。

try 语句

try 语句包含需要进行异常处理的代码块,如果代码块中任何代码抛出了异常,程序会直接跳转到 catch 语句,而不会执行异常之后的代码。

try {
  // 需要进行异常处理的代码块
} catch (error) {
  // 异常处理代码
}

在 try 代码块中,我们可以编写可能会抛出异常的代码。如果这些代码执行失败,它将抛出异常。如果有 catch 语句,JavaScript 会将控制权转移到 catch 代码块,以查找对抛出的异常的处理方法。

catch 语句

catch 语句是用来处理在 try 代码块中抛出的异常。catch 语句必须包含一个参数,它是抛出异常的错误对象。catch 代码块被执行的时机取决于 try 块中是否抛出异常。

try {
  // 需要进行异常处理的代码块
} catch (error) {
  // 异常处理代码
}

在 catch 代码块中,我们可以在处理异常时执行各种操作。错误对象可能会包含有关错误的详细信息,例如错误消息、文件名和行号。

finally 语句

finally 语句是在 try 代码块和 catch 代码块之后执行的代码块,无论是否发生异常都会执行。通常,finally 块中包含清理代码。

try {
  // 需要进行异常处理的代码块
} catch (error) {
  // 异常处理代码
} finally {
  // always executed
}

在 finally 块中,可以执行任何清理代码,例如关闭文件、释放内存等。

示例
try {
  console.log("try block start");

  // 代码块中由于除数为0而抛出异常
  var result = 10 / 0;

  console.log("try block end");
} catch (err) {
  console.log("catch block start");

  // 处理异常
  console.log(err);

  console.log("catch block end");
} finally {
  console.log("finally block start");

  // 执行清理代码
  console.log("finally block end");
}

// 程序继续执行
console.log("program continue...");

输出结果:

try block start
catch block start
TypeError: Infinity
catch block end
finally block start
finally block end
program continue...

在示例代码中,try 代码块中的代码抛出了一个异常,然后程序跳转到 catch 代码块中对异常进行处理。最后,无论是否抛出异常,finally 代码块中的代码都会执行。在本例中,finally 块中的代码仅包含清理代码。最后,程序继续执行。