• 技术文章 >web前端 >js教程

    javascript捕获异常的方法有哪些

    青灯夜游青灯夜游2021-07-19 18:52:56原创111

    方法: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语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。

    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内建了几种标准错误类型:

    window.onerror

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

    /*
        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捕获异常的方法有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:javascript 捕获异常
    上一篇:javascript数组的map方法怎么用 下一篇:JavaScript怎么实现页面的刷新
    VIP会员

    相关文章推荐

    • javascript怎么改变input输入框的值• json和javascript对象有什么区别• javascript怎么判断是否包含指定字符串• JavaScript是网页脚本语言吗• javascript怎么将数值转为字符串• javascript怎么隐藏元素值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网