JavaScript throw 语句
- 抛出自定义异常:JavaScript 中的
throw
语句用于创建并抛出用户自定义的异常。例如,可以使用throw
语句处理某些特定情况下的异常,如数字除以零时视为异常。 - throw 语句的语法:
throw
语句的基本语法为throw expression;
,其中expression
是指定的异常值,可以是字符串、布尔值、数字或对象。 - 结合 try...catch 使用:
throw
语句常与try...catch
语句结合使用。当throw
语句执行时,会立即退出当前代码块,并跳转到catch
代码块处理异常。throw
语句后的代码将不会执行。
在之前的教程中,你学习了如何使用 JavaScript try..catch 语句 处理异常。try 和 catch 语句以 JavaScript 提供的标准方式处理异常。然而,你可以使用 throw
语句来传递用户定义的异常。
在 JavaScript 中,throw
语句处理用户定义的异常。例如,如果某个数字除以 0,并且你需要将 Infinity
视为一个异常,你可以使用 throw
语句来处理该异常。
JavaScript throw 语句
throw 语句的语法是:
throw 表达式;
这里的 表达式
指定了异常的值。
例如,
const number = 5;
throw number / 0; // 当除以 0 时生成一个异常
注意:表达式可以是字符串、布尔值、数字或对象值。
JavaScript throw 结合 try...catch 使用
try...catch...throw
的语法是:
try {
// try 代码块
throw 异常;
} catch (error) {
// catch 代码块
}
注意:当执行 throw 语句时,它会退出代码块并进入 catch
代码块。并且 throw
语句以下的代码不会执行。
示例 1:try...catch...throw 示例
const number = 40;
try {
if (number > 50) {
console.log("成功");
} else {
// 用户定义的 throw 语句
throw new Error("数字太低");
}
// 如果执行了 throw,以下代码将不会执行
console.log("你好");
} catch (error) {
console.log("捕获到一个错误");
console.log("错误信息:" + error);
}
输出
捕获到一个错误
错误信息:Error: 数字太低
在上面的程序中,检查了一个条件。如果数字小于 51,则抛出一个错误。并且该错误是使用 throw
语句抛出的。
throw
语句将字符串 数字太低
指定为表达式。
注意:你也可以使用其他内置错误构造函数表示标准错误:TypeError
、SyntaxError
、ReferenceError
、EvalError
、InternalError
和 RangeError
。
例如,
throw new ReferenceError("这是一个引用错误");
重新抛出异常
你也可以在 catch
代 码块内使用 throw
语句重新抛出异常。例如,
const number = 5;
try {
// 用户定义的 throw 语句
throw new Error("这是 throw");
} catch (error) {
console.log("捕获到一个错误");
if (number + 8 > 10) {
// 处理异常的语句
console.log("错误信息:" + error);
console.log("错误已解决");
} else {
// 无法处理异常
// 重新抛出异常
throw new Error("值太低");
}
}
输出
捕获到一个错误
错误信息:Error: 这是 throw
错误已解决
在上述程序中,try
代码块内使用了 throw
语句来捕获异常。如果 catch
代码块无法处理异常,则在 catch
代码块中重新抛出 throw
语句。
这里,catch
代码块处理了异常,没有发生错误。因此,throw
语句没有被重新抛出。
如果错误没有被 catch 代码块处理,throw 语句将会被重新抛出,错误信息为 Uncaught Error: 值太低。