Throw 在 JavaScript 中的用法

2025年3月29日 | 阅读 4 分钟

在 JavaScript 中,处理程序执行期间出现的错误或异常称为异常处理。通过利用 JavaScript 的异常优雅处理工具,程序员可以以可控的方式响应故障,避免程序崩溃。

JavaScript 中异常处理的主要机制是 try...catch 语句。其工作原理如下:

  • Try 块: try 块包含您希望监测异常的代码。
  • Catch 块: 在 try 块之后,您可以添加一个 catch 块来告诉您如果在 try 块中发生异常时该怎么做。您可以在 catch 块中指定如何处理问题,例如记录它或向用户显示错误消息。
  • Finally 块(可选): 在 catch 块之后,您可能需要添加一个 finally 块。无论 try 块中是否发生异常,finally 块中的代码都将始终运行。这对于清理资源等很有用。

示例

JavaScript 异常处理中使用 throw 语句手动创建和“抛出”异常。它使程序员能够清晰地表明代码中发生了错误或其他异常情况。执行 throw 语句后,程序会停止并将控制权转移到最近的嵌套 try 块的 catch 子句,或者在没有此类块的情况下,转移到全局错误处理程序。

语法

在这种情况下,expression 代表您希望抛出的值,通常是错误对象。虽然任何数据类型都可以用于此表达式,但通常用于抛出内置 Error 对象或其任何子类的实例,以提供更具体的错误信息。

JavaScript 中 throw 语句的演示

以下是一些演示 JavaScript 异常处理中 throw 语句用法的示例:

  • 抛出自定义错误消息

代码

validateAge 函数检查 age 参数是否为负数,从而导致错误消息。使用 try...catch 块来捕获异常。

1. 抛出特定类型的错误

代码

如果 y 不为零,division 方法将抛出错误对象。如果发生这种情况,任何异常都会被捕获并使用 try...catch 块记录到控制台。

2. 抛出带有附加信息的错误

代码

当发现输入无效时,validateInput 方法会抛出一个 ValidationError,其中包含无效输入和可配置的错误消息。它接受消息和输入,扩展内置的 Error 类,并在类型为 ValidationError 时记录异常。

3. 抛出自定义错误对象

代码

  • 内置的 Error 类通过 ValidationError 类的定义得到扩展。
  • 其构造函数在接收输入和消息后使用 super 设置值。
  • 当发现输入无效时,validateInput 方法会抛出一个 ValidationError。
  • try...catch 块内调用 ValidateInput(null),这会引发一个异常。
  • catch 块捕获 ValidationError,并记录错误消息和无效输入,以帮助将其与其他问题区分开来。

本文详细介绍了 JavaScript 中的异常处理,特别关注 `try...catch` 和 `throw` 命令。它描述了如何利用这些工具来优雅地处理错误,以便程序对问题做出反应而不是崩溃。

`throw` 语句支持创建和抛出自定义错误对象,而 `try...catch` 语句是管理异常的主要方法。程序员可以通过遵循本文的建议来提高代码的健壮性和可靠性。