📜  JavaScript中的异常处理

📅  最后修改于: 2020-10-26 03:31:20             🧑  作者: Mango

JavaScript中的异常处理

异常表示存在异常状况,需要特殊的可操作技术。用编程术语来说,异常是打破常规代码流程的异常代码。此类异常需要专门的编程构造来执行。

什么是异常处理

在编程中,异常处理是用于处理代码中的异常语句并执行它们的过程或方法。它还可以处理代码/程序的流控制。为了处理代码,使用了各种处理程序来处理异常并执行代码。例如,将非零值除以零将始终导致无穷大,这是一个例外。因此,借助异常处理,可以执行和处理异常。

在异常处理中:

throw语句用于引发异常。这意味着当发生异常情况时,将使用throw引发异常。

通过将代码包装到try…catch块中来处理抛出的异常。如果存在错误,将执行catch块,否则将仅执行try块语句。

因此,在编程语言中,可能存在不同类型的错误,这些错误可能会干扰程序的正确执行。

错误类型

编码时,代码中可能存在三种错误:

  • 语法错误:如果用户在编程语言的预定义语法中犯了错误,则可能会出现语法错误。
  • 运行时错误:在程序执行过程中发生错误时,此类错误称为运行时错误。产生运行时错误的代码称为“异常”。因此,异常处理程序用于处理运行时错误。
  • 逻辑错误:程序中出现任何逻辑错误,可能无法产生所需的输出,并且可能异常终止时,将发生此错误。这种错误称为逻辑错误。

错误对象

发生运行时错误时,它将创建并引发一个Error对象。这样的对象也可以用作用户定义的异常的基础。错误对象具有两个属性:

  • 名称:这是一个对象属性,用于设置或返回错误名称。
  • 消息:此属性以字符串形式返回错误消息。

尽管Error是泛型构造函数,但它旁边还有以下标准的内置错误类型或错误构造函数:

  • EvalError:它为eval()中发生的错误创建一个实例,eval是用于评估js字符串代码的全局函数。
  • InternalError:当js引擎引发内部错误时,它将创建一个实例。
  • RangeError:它为当数字变量或参数超出其有效范围时发生的错误创建一个实例。
  • ReferenceError:它将为错误引用无效引用时发生的错误创建一个实例。
  • SyntaxError:为解析eval()时可能发生的语法错误创建了一个实例。
  • TypeError:当变量不是有效类型时,将为此类错误创建一个实例。
  • URIError:为错误实例创建一个实例,该错误是在encodeURI()decodeURI()中传递无效参数时发生的。

异常处理语句

有以下语句可以处理是否发生任何异常:

  • throw
  • try…catch语句
  • try…catch…final。

这些异常处理语句将在下一节中讨论。