Javascript中是否存在错误类型?

Anees Hikmat阿布·赫米德

我想问一下Java脚本错误,是否有像php或其他错误类型,

示例:在php中,我们有通知,并且Parse Error ..etc通知不会停止php执行,但是解析将是直接停止执行php代码。

现在有这样的js错误,或者是js分类错误是什么..我知道我们可以通过try,catch ..处理错误,但是js中的错误是弯曲的脚本,其他错误不会停止执行脚本

谢谢

TJ人群

js中是否存在错误,脚本是弯曲的脚本,其他脚本不会停止执行脚本

除了解析/语法错误外,没有。

JavaScript有例外。异常将退出引发该异常的代码以及调用该异常的代码,依此类推,直到被捕获为止。如果未捕获,则将终止所有当前正在运行的功能,并将错误记录到Web控制台。

因此,一个异常(要么是您明确抛出的异常,要么是您做某事的副产品而发生的异常)将终止所有正在运行的函数(如果未捕获)或仅终止某些代码(如果已捕获)。

例如:

function foo() {
    try {
        bar(0);
    }
    catch (e) {
        console.log("Caught exception");
    }
}
function bar(a) {
    if (a <= 0) {
        throw new Error("'a' cannot be <= 0");
    }
    console.log("bar: a = " + a);
}

foo();

那里,bar跟随异常的代码没有运行(我们看不到"bar: a = 0"),因为抛出了异常,终止了bar但是,由于捕获了异常,因此foo的代码在该catch块中继续foo

JavaScript是不寻常的,因为您可以抛出任何东西,包括字符串,数字等。但是,如果需要有用的信息,通常会抛出Error

throw new Error("Optional message here");

由于抛出的东西可以是任何东西,因此您可能会认为有一种方法可以仅捕获某些东西,但事实并非如此。catch捕获任何引发的异常。所以:

try {
    throw "foo";
}
catch (e) {
}

try {
    throw new Error();
}
catch (e)
}

try {
    throw 42;
}
catch (e)
}

注意,这些catch子句是相同的。他们抓到任何扔掉的东西当然,您可以然后检查您得到的内容并重新抛出:

try {
    // ...some code here that may throw any of several things...
}
catch (e)
    if (typeof e === "string") {
        // Handle it here
    }
    else {
        throw e;
    }
}

在这里,我们只处理字符串的异常,而不处理数字,Error对象等的异常

您可以根据需要创建自己的派生版本Error,尽管这比应该做的要麻烦得多:

function MySpecificError(msg) {
  this.message = msg;
  try {
    throw new Error();
  }
  catch (e) {
    this.stack = e.stack;
  }
}
MySpecificError.prototype = Object.create(Error.prototype);
MySpecificError.prototype.constructor = MySpecificError;

然后:

throw new MySpecificError("Something went wrong.");

注意,我们必须填写代码MySpecificError以创建堆栈跟踪。(还请注意,并非所有引擎都提供堆栈跟踪,但是如果这样做,则可以使用它。)

一些引擎提供了一些开箱即用的错误类型:

  • Error
  • RangeError (超出范围)
  • ReferenceError (但通常这是您会让引擎抛出的东西)
  • TypeError (再次)
  • SyntaxError (再次)

最后,值得注意的是,在其他环境中会导致异常的几件事不在JavaScript中,主要是围绕数学。例如:

var result = 10 / 0;

在许多非JavaScript环境中,这会导致运行时错误(除以零)。在JavaScript中,它不是;result获得价值Infinity

类似地:

var x = Number("I am not a number");

要么

var x = parseInt("I am not a number", 10);

...不会引发解析错误,而是设置xNaN(“非数字”)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript中是否存在整数类型?

来自分类Dev

在javascript函数中返回不同类型是否也是错误的?

来自分类Dev

在处理json数据类型时,mysql 5.7中是否存在错误?

来自分类Dev

JavaScript中是否存在parseDouble?

来自分类Dev

检查Python模块中的类型是否存在

来自分类Dev

检查phing中是否存在文件类型

来自分类Dev

是否存在JavaScript技术来检查>,<,> =,<=操作中的类型相等性?

来自分类Dev

Javascript类型强制中的错误

来自分类Dev

回滚系统中是否存在错误?

来自分类Dev

关于使用arguments对象创建可变函数的有效JavaScript示例中是否存在错误?

来自分类Dev

检查JavaScript中是否存在var以避免未定义的.top错误

来自分类Dev

错误类型“ XX”中不存在类型“ X”

来自分类Dev

TFS - 错误:“命名空间 'blublu' 中不存在类型或命名空间名称 'blabla'(您是否缺少程序集引用?)

来自分类Dev

是否在对象中存在值的Javascript?

来自分类Dev

查找Javascript数组中是否存在元素

来自分类Dev

Javascript中是否存在不可捕获的异常?

来自分类Dev

检查数组javascript中是否存在值

来自分类Dev

检查Javascript对象中是否存在属性

来自分类Dev

检查JavaScript中是否存在节点值

来自分类Dev

检查Javascript数组中是否存在标签

来自分类Dev

在此代码示例中,是否存在使用DOM脚本和Ajax开头的JavaScript中的错误?或者我缺少什么?

来自分类Dev

PHP中是否存在本机的多维,多类型排序?

来自分类Dev

vb.net中是否存在“全局”类型的导入语句?

来自分类Dev

JDK 8 update 20中是否存在类型推断回归?

来自分类Dev

通过NEST检查ElasticSearch中是否存在类型

来自分类Dev

JDK 8 update 20中是否存在类型推断回归?

来自分类Dev

检查TypeScript中是否存在内置类型?

来自分类Dev

Purescript中的新类型是否可能存在约束?

来自分类Dev

F#中是否存在带有键的记录类型

Related 相关文章

  1. 1

    JavaScript中是否存在整数类型?

  2. 2

    在javascript函数中返回不同类型是否也是错误的?

  3. 3

    在处理json数据类型时,mysql 5.7中是否存在错误?

  4. 4

    JavaScript中是否存在parseDouble?

  5. 5

    检查Python模块中的类型是否存在

  6. 6

    检查phing中是否存在文件类型

  7. 7

    是否存在JavaScript技术来检查>,<,> =,<=操作中的类型相等性?

  8. 8

    Javascript类型强制中的错误

  9. 9

    回滚系统中是否存在错误?

  10. 10

    关于使用arguments对象创建可变函数的有效JavaScript示例中是否存在错误?

  11. 11

    检查JavaScript中是否存在var以避免未定义的.top错误

  12. 12

    错误类型“ XX”中不存在类型“ X”

  13. 13

    TFS - 错误:“命名空间 'blublu' 中不存在类型或命名空间名称 'blabla'(您是否缺少程序集引用?)

  14. 14

    是否在对象中存在值的Javascript?

  15. 15

    查找Javascript数组中是否存在元素

  16. 16

    Javascript中是否存在不可捕获的异常?

  17. 17

    检查数组javascript中是否存在值

  18. 18

    检查Javascript对象中是否存在属性

  19. 19

    检查JavaScript中是否存在节点值

  20. 20

    检查Javascript数组中是否存在标签

  21. 21

    在此代码示例中,是否存在使用DOM脚本和Ajax开头的JavaScript中的错误?或者我缺少什么?

  22. 22

    PHP中是否存在本机的多维,多类型排序?

  23. 23

    vb.net中是否存在“全局”类型的导入语句?

  24. 24

    JDK 8 update 20中是否存在类型推断回归?

  25. 25

    通过NEST检查ElasticSearch中是否存在类型

  26. 26

    JDK 8 update 20中是否存在类型推断回归?

  27. 27

    检查TypeScript中是否存在内置类型?

  28. 28

    Purescript中的新类型是否可能存在约束?

  29. 29

    F#中是否存在带有键的记录类型

热门标签

归档