ECMA-262 第 3 版新增了 try / catch 语句,作为在 JavaScript 中处理异常的一种方式。基本的语法如下所示,跟 Java 中的 try / catch 语句一样:

try {
// 可能出错的代码
} catch (error) {
// 出错时要做什么
}

任何可能出错的代码都应该放到 try 块中,而处理错误的代码则放在 catch 块中,如下所示:

try {
window.someNonexistentFunction();
} catch (error){
console.log("An error happened!");
}

如果 try 块中有代码发生错误,代码会立即退出执行,并跳到 catch 块中。 catch 块此时接收到一个对象,该对象包含发生错误的相关信息。与其他语言不同,即使在 catch 块中不使用错误对象,也必须为它定义名称。错误对象中暴露的实际信息因浏览器而异,但至少包含保存错误消息的 message属性

finally 子句 try / catch 语句中可选的 finally 子句始终运行。如果 try 块中的代码运行完,则接着执行finally 块中的代码。如果出错并执行 catch 块中的代码,则 finally 块中的代码仍执行。 try 或catch 块无法阻止 finally 块执行,包括 return 语句。比如:

function testFinally(){
try {
return 2;
} catch (error){
return 1;
} finally {
return 0;
}
}
Last Updated:
Contributors: pengrengui