js使用try catch

48次阅读
没有评论

在 JavaScript 中,try…catch 语句用于捕获代码中可能出现的异常并进行处理。其语法格式如下:

try {
  // 可能会抛出异常的代码块
} catch (e) {
  // 异常处理代码块
}

其中,try 代码块中包含可能会抛出异常的代码,catch 代码块中包含处理异常的代码。当 try 代码块中的代码抛出异常时,程序会跳转到 catch 代码块中执行,e 参数表示抛出的异常对象。

下面是一个使用 try…catch 语句的示例:

try {
  var x = y + 1; // 可能会抛出异常的代码
} catch (e) {
  console.error('出现异常:', e.message); // 处理异常的代码
}

在上述代码中,变量 y 没有定义,执行 var x = y + 1; 时会抛出 ReferenceError 异常,程序会跳转到 catch 代码块中执行,并输出异常信息。

需要注意的是,catch 代码块只会捕获 try 代码块中抛出的异常,如果异常是在 catch 代码块中抛出的,外部的 try…catch 语句无法捕获。如果有多个 catch 代码块,程序会依次匹配每个代码块中的异常类型,直到找到匹配的代码块为止。如果所有的代码块都没有匹配的异常类型,则异常会继续向上抛出,直到被外部的 try…catch 语句捕获或成为未处理的异常。

除了 catch 代码块外,try…catch 语句还可以包含 finally 代码块,该代码块中的代码无论是否抛出异常都会被执行。其语法格式如下:

try {
  // 可能会抛出异常的代码块
} catch (e) {
  // 异常处理代码块
} finally {
  // 无论是否抛出异常都会执行的代码块
}

下面是一个包含 finally 代码块的示例:

try {
  console.log('开始执行');
  throw new Error('抛出异常');
} catch (e) {
  console.error('出现异常:', e.message);
} finally {
  console.log('执行完毕');
}

在上述代码中,throw new Error(‘抛出异常’); 会抛出一个异常,程序会跳转到 catch 代码块中执行,并输出异常信息,最后无论是否抛出异常,finally 代码块中的代码都会被执行。

正文完
 
评论(没有评论)