javascript捕获异常的方法有哪些


本文摘自PHP中文网,作者青灯夜游,侵删。

方法:1、使用try catch finally语句,语法“try{//调试代码块}catch(e) {//捕获处理异常}finally{//后期清理代码块}”;2、使用窗口对象window的onerror事件。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript捕获异常的方法

JavaScript的异常主要使用try catch finally语句以及窗口对象windowonerror事件来捕获。

try catch finally

try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号。try catch finally语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

try{

    // try_statements

    throw new TypeError("Test");

}catch (e){

    // catch_statements

    console.log("catch_statements");

    if(e instanceof TypeError){

        // handle this expected error

        console.log("handle this expected error");

    }else{

        // handle unexpected error

        console.log("handle unexpected error");

    }

}finally{

    // finally_statements

    console.log("finally_statements");

}

 

/*

    注:

    [catch (e if e instanceof TypeError) { // 非标准

       catch_statements

    }]

*/

通过Error的构造器可以创建一个错误对象,当运行时错误产生时,Error的实例对象会被抛出,Error对象也可用于用户自定义的异常的基础对象,Js内建了几种标准错误类型:

  • EvalError: 创建一个error实例,表示错误的原因:与eval()有关。
  • RangeError: 创建一个error实例,表示错误的原因:数值变量或参数超出其有效范围。
  • ReferenceError: 创建一个error实例,表示错误的原因:无效引用。
  • SyntaxError: 创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。
  • TypeError: 创建一个error实例,表示错误的原因:变量或参数不属于有效类型。
  • URIError: 创建一个error实例,表示错误的原因:给encodeURI()decodeURl()传递的参数无效。

window.onerror

window.onerror可以捕捉语法错误,也可以捕捉运行时错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号,只要在当前window执行的Js脚本出错都会捕捉到,通过window.onerror可以实现前端的错误监控。出于安全方面的考虑,当加载自不同域的脚本中发生语法错误时,语法错误的细节将不会报告。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

/*

    message:错误信息(字符串)。

    source:发生错误的脚本URL(字符串)

    lineno:发生错误的行号(数字)

    colno:发生错误的列号(数字)

    error:Error对象(对象)

    若该函数返回true,则阻止执行默认事件处理函数。

*/

window.onerror = function(message, source, lineno, colno, error) {

    // onerror_statements

}

 

/*

    ErrorEvent类型的event包含有关事件和错误的所有信息。

*/

window.addEventListener('error', function(event) {

    // onerror_statements

})

【推荐学习:javascript高级教程

以上就是javascript捕获异常的方法有哪些的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中generator函数的详理解

javascript是什么技术

javascript未知错误怎么查

javascript中ie兼容出现的问题及解决方法

浅谈javascript中的事件委托

简约javascript中的变量对象

5种javascript中解构(destructuring)的使用方法

javascript中的对象分为哪几类

javascript创建新节点方法是什么

javascript怎么定义数据类型

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...