美文网首页
js异常捕获

js异常捕获

作者: 大饼脸me | 来源:发表于2017-10-13 15:45 被阅读60次
一、js异常捕获的两种方式:

1、try...catch
2、window.onerror

try...catch

  • try...catch只能捕获运行时的错误,无法捕获语法错误;
  • 可以拿到出错的信息,堆栈,出错的文件、行号、列号;
  • 需要借助工具把所有的function块以及文件加入try,catch,可以在这个阶段打入更多的静态信息。

window.onerror

  • 可以捕捉语法错误,也可以捕捉运行时错误;
  • 可以拿到出错的信息,堆栈,出错的文件、行号、列号;
  • 只要在当前页面执行的js脚本出错都会捕捉到,例如:浏览器插件的javascript、或者flash抛出的异常等;
    跨域的资源需要特殊头部支持。
二、跨域的错误如何捕获:

外部加载的JS抛出异常的时候,出于安全方面的考虑,js错误信息可能包含一些敏感信息,比如用户名、权限提示等,希望能够把这类信息屏蔽。目前跨域的场景下会触发这种安全限制,window.onerror无法获得具体出错信息,而只能得到Script error 0 0。

解决方法

  • 响应头增加access-control-allow-origin
  • 每个function包裹try-catch
  • 切面包裹入口函数,try-catch

1、响应头增加access-control-allow-origin
连个步骤
① Access-Control-Allow-Origin header里设置允许cros的域

//nginx配置如下:
server{
        listen 80;
        server_name static.fourb.info;
                    
        location / {
            root E:\FB\static-site\static;
            proxy_pass http://static.fourb.info:8080;
            access_log  logs/fb.log main;
        }
                    
        location ~ \.(css|doc|eip|exe|gif|ico|jpg|js|mp3|png|swf|xml|txt|bm|html|htm|json)$ {
            root E:\FB\static-site\static;
            add_header 'Access-Control-Allow-Origin' "*";
            expires 7d;
        }
    }

② script引入外链的标签需要加多一个crossorigin的属性

二、异步的错误如何捕获:

相关文章

  • 前端异常监控window.onerror unhandledre

    关于前端异常监控,我们需要做到捕获JS异常和代码中未捕获的promise异常,然后向服务器上报 捕获JS异常 在了...

  • js异常捕获

    一、js异常捕获的两种方式: 1、try...catch2、window.onerror try...catch ...

  • js异常捕获

    如果觉得还有点用,请您给我一个赞!您的赞是我坚持下去的动力 常用的3种异常捕获方式 1、listener监听 特点...

  • JS如何捕获异常

    一、使用try,catch 二、使用Windows.onerror

  • js笔记四十一类数组转换为数组(浏览器异常捕获)

    类数组转换为数组 浏览器异常信息捕获 js中使用try catch进行浏览器的异常信息捕获 第二行代码报错,如果用...

  • js异常处理总结

    js异常处理总结 先看最基础的情况 try catch 单层嵌套 多级嵌套,捕获下面的异常 预期异常:参数不合法,...

  • Python面向对象2

    异常 捕获异常image.png根据错误类型捕获异常image.png 未知错误捕获image.png 捕获异常完...

  • 工作总结-002

    异常捕获service捕获业务异常,自定义BaseException;interface捕获业务异常,以及其他异常...

  • C++学习第20课,异常

    1 异常 一句话概括:捕获异常 1.1 谁捕获异常?捕获谁? A捕获B A() { try{ B(); } ...

  • Python 面向对象 - 08 异常

    目录一、概念二、捕获异常2.1 简单的捕获异常语法2.2 错误类型捕获2.3 异常捕获完整语法三、异常的传递四、抛...

网友评论

      本文标题:js异常捕获

      本文链接:https://www.haomeiwen.com/subject/xlxzyxtx.html