Javascript中的Error和Exception有什么区别?

时间:2013-04-22 08:29:24

标签: javascript exception error-handling

似乎ErrorException是相同的事情:它们都可以使用throw语句抛出并被try catch块捕获。

4 个答案:

答案 0 :(得分:26)

JavaScript语法

错误和异常在JavaScript中在语法上是同义词。该语言仅实现Error关键字(通过window.Error)。您可以使用Error.constructor定义自定义错误,namemessage作为参数。

JavaScript错误

还有行号糖可用于跟踪代码中的错误发生。 JavaScript只有Error。无论您是否听到人们在谈论ExceptionsErrors,他们都会在JavaScript中引用相同的内容。

浏览器有所区别:ReferenceError(当访问堆中不存在的名称的变量时,或者当你输入拼写错误时(更多here。),{{1} }也是一个已知的JS错误,更多here

JavaScript异常

已知的JavaScript TypeErrorException。当您访问未准备好的对象(例如尚未完成请求的DOM Exception 8)时,会发生此错误。

<强>实施

使用XMLHttpRequesttry catch阻止时,您将同时处理JavaScript try catch finallyException。代码方面,差异没有影响。

在幕后,浏览器使用相同的Error window.Errorconstructor是一个Exception个实例,Errorname包含“例外”。

尝试:message。 “异常”是字符串中的文本。有关var myCustomError = new Error("myException", "An exception occurred."); here的更多信息。

<强>公约

按照惯例,ErrorError之间存在差异。 Exception表示明显违规。 ErrorTypeError表示您未遵循语言规范。

在完成之前访问ReferenceError响应时,会引发ExceptionXMLHttpRequest是“你违法”的喊叫而Error是“几乎就在那里!”垫在肩上。希望这个比喻有所帮助!

答案 1 :(得分:9)

基于lecture,JavaScript引擎抛出错误,开发人员抛出异常。它只是命名约定。

  • JavaScript抛出错误
  • 开发人员抛出例外

在技术方面是相同的结构(事物)。

答案 2 :(得分:1)

我认为错误是严重的,你不应该试图抓住 只要有可能处理它,就应该捕获一个例外。

错误是代码中出现错误或无效的错误。它可能会导致内存错误,这是永远不会发生的事情,无法对其进行处理。

当代码中满足某些条件时,异常会抛出某些内容。它可能与实际错误无关。

答案 3 :(得分:0)

try {
    throw "throwing string";
} catch (ex) {
    console.log(ex);
}

如果运行此代码,我们将观察到 catch 子句将使用throw接收 任何我们抛出的东西 关键词。这意味着如果我们抛出字符串,我们将接收字符串,如果我们抛出对象,我们将接收对象,如果我们抛出数字,我们将接收数字。

注意: 因此,如果抛出错误,我们将收到错误消息。

因此,结论是我们使用 throw关键字 抛出的任何内容都将被视为例外。如果我们没有捕获(或处理)它,那么我们的Javascript代码就会崩溃。