`

Chrome浏览器使用Console调试(三)

阅读更多

     异常和错误处理

      Chrome DevTools提供了在javascript中抛出异常和调试错误信息帮助你来修正web页面.

      页面异常和js错误实际上相当有用--你能获取它们背后的详细信息.当一个页面抛出异常或者一个脚本产生错误时,控制台提供了详细的,可依赖的信息帮你定位和纠正问题.
      在控制台你可以追踪异常和追踪执行路径,明确地或者隐含地捕获它们(或者忽略它们),甚至设置错误处理自动收集和处理异常数据

      追踪异常
      当问题出现时,打开DevTools的console(Ctrl+Shift+J /Cmd+Option+J)查看js错误信息.每一条信息有一个链接,你可以查看到它在这个文件中的所在的行

      一个异常的例子:


 


      查看异常栈追踪
      引导错误的执行路径不是总是明显.完整的Js调用栈在控制台会伴随着异常.展开这些控制台信息可以看到堆栈帧,并且可以在代码里查看到相应的位置.
      

 

     在js异常上暂停
在你的应用中,下一步一个异常就要被抛出来了,此时暂停Js执行,检查它的调用栈,作用域变量,状态等.在脚本面板的底部有一个暂停按钮

 使你可以切换不同的异常模式,可以选择一个暂停的异常或者未捕获的异常或者你忽略异常的(直译)


 
      打印堆栈跟踪

通过打印日志信息到console上能够更好的理解你的页面的表现行为.让日志信息包含相关的堆栈跟踪让其更有用.有几种方式来做:

       Error.stack

       每一个错误对象有一个字符串属性名字叫做stack,它包含了堆栈跟踪
      

 
        console.trace()

        在你的代码里写入console.trace()调用打印当前js调用栈. 

 

          console.assert()
         在代码里放置断言,将错误条件作为第一个参数放进console.assert().当这个表达式执行为false,你会看到相对应的控制台记录:
         

 
         如何检测对战跟踪找到触发点

         让我们使用你学到的工具来找一个错误的真正原因.看下面的HTML页面包含两个scripts
 


  
          用户在页面上点击时,P段落会改变它的内部文本信息,调用由lib.js提供的callLibMethod()方法
方法打印一个console.log,之后调用console.slog,这不是console提供的API,这会产生一个错误.
当页面运行,并且在页面进行了点击,错误就会被触发


 

           点击箭头能够展开错误信息:
 

 
           控制台会显示错误在lib.js的第四行,它是由script.js中的addEventListener方法中的回调方法调用的,该方法在第三行.

          这是一个非常简单的例子,但即便是最复杂的日志跟踪调试也是相同的步骤.

         使用window.onerror处理运行时异常

         Chrome暴露了window.onerror的处理方法,在js代码执行时,在任何时候出现error,都会被调用.在window的上下文中
无论何时一个js异常被抛出来,并且没有被try/catch代码块捕获.这个异常信息
按顺序传递 异常信息,被抛出来有文件的URL,文件中的代码所在行三个参数进去.
          你会发现设置一个error的处理器用来收集未捕获的异常信息很有用,比如用一个ajax post的调用给后台服务报告它.
使用这种方式,你能够在用户浏览器中记录出现的错误日志,并且能够被它们提醒.

        使用window.onerror的例子:
 

 
 
  • 大小: 101.4 KB
  • 大小: 140.5 KB
  • 大小: 267 Bytes
  • 大小: 71 KB
  • 大小: 90.4 KB
  • 大小: 115.8 KB
  • 大小: 140.5 KB
  • 大小: 37.6 KB
  • 大小: 16.6 KB
  • 大小: 20.1 KB
  • 大小: 69.4 KB
分享到:
评论

相关推荐

    Chrome 浏览器中执行 JavaScript

    本章节为大家介绍如何在 Chrome 浏览器上进行 JavaScript 代码的运行与调试。 Chrome 是由 Google 开发的免费网页浏览器,对于前端开发来说(尤其是调试代码)非常方便。 Chrome 官网地址:...

    SocketLog:微信调试,API调试和AJAX的调试的工具,可以通过WebSocket输出到Chrome浏览器的控制台中

    客户端会通过一个Chrome插件将调试信息打印到浏览器的Console中,这些信息包括程序的运行时间,吞吐率,内存消耗; PHP的错误,警告,通知信息;程序执行SQL语句以及对SQL语句的解释等等。 SocketLog使用PHP和NodeJs...

    FireFox Chrome IE浏览器调试JavaScript

    在安装好插件之后,先用Firefox浏览器打开需要测试的页面,然后点击右下方的绿色按钮或使用快捷键F12唤出Firebug插件,它会将当前页面分成上下两个框架,如图1所示。 图1:Firebug插件展开图示 从图1中看到,...

    JavaScript检测是否开启了控制台(F12调试工具)

    js检测用户是否打开调试工具(chrome) (function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次打开控制台'; } })(); JavaScript检测是否开启了...

    基于谷歌的反调试工具插件

    有些网站会不停的往Chrome缓存里塞东西(多见于sojson和一些仿sojson的网站),已干掉。 3、基于debugger的卡浏览器 检测devtool 动态debugger hook 了 Function.protype.constructor 替换所有的debugger 字符...

    RemoteConsole:在远程浏览器上调试 HTML 页面

    某些移动设备也不支持经典的调试控制台(safari 和 chrome,在您的桌面上连接移动设备)和代理。 所以在这些情况下,调试似乎是不可能的.. 这就是远程控制台诞生的原因,它允许您查看日志/错误并执行 JS 命令和其他...

    javascript代码调试之console.log 用法图文详解

    大家都有用过各种类型的浏览器,每种...先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就可以轻松的打开控制台 大家可以看到控制台里面有一首诗还有其它信息,如果想清空控制台,可以点击左上角那个来清

    微信调试、API、AJAX的调试SocketLog.zip

    效果展示: 我们在浏览网站的时候在浏览器console中就知道程序做了什么,这对于二次开发产品十分有用。 下面效果图在console中打印出浏览discuz程序时,执行了哪些sql语句, 以及执行sql语句的调用栈。程序的...

    customDevTools:在Chrome Dev Tools中使用自定义功能

    Chrome浏览器会自动将console.js (在function customConsole插入自己的自定义代码)注入当前页面。 要修改何时/如果Chrome注入代码,请转到background.js(有相关说明)。 要修改此扩展名适用于哪些页面,以修改...

    wp-chrome-logger:在 chrome 控制台中输出任何内容(又一个调试助手)

    wp-chrome-调试器 感谢 [Craig Campbell] 创建了很棒的调试工具 [chromephp] 安装 从以下位置安装 Chrome 扩展程序: : 单击浏览器中的扩展图标,为当前选项卡的域启用它 下载此插件并激活它。 ##如何工作 使用...

    使用VScode 插件debugger for chrome 调试react源码的方法

    代码调试,是我们前端日常工作中不可或缺的能力了吧! 在面向dom开发的时代,我们开发时直接在chrome里打断点是很方便的。 但是,当我们面向组件开发时(react),浏览器拿到的是我们编译过后的代码,还想在浏览器里...

    inline-console:轻松将JavaScript开发者控制台添加到任何浏览器页面的底部

    内置的浏览器控制台(例如Chrome或FireFox中提供的控制台)远远优于您在此控制台中看到的控制台。 但是,此控制台旨在帮助解决浏览器未提供本机开发人员控制台的情况,例如iOS的移动浏览器。 因此,例如,使用此...

    JS检测浏览器开发者工具是否打开的方法详解

    对于一些浏览器,比如Chrome、FireFox,如果控制台输出的是对象,则保留对象的引用,每次打开开发者工具的时候都会重新调用一下对象的toString()方法将返回结果打印到控制台(console tab)上。 所以只需要创建一个...

    SocketLogs-crx插件

    这时候用SocketLog最好,SocketLog通过WebSocket将调试日志打印到浏览器的console中。你还可以用它来分析开源程序,分析SQL性能,结合taint分析程序漏洞。 详情查看帮助:https://github.com/xiaoyuit/SocketLogs

    SocketLog-crx插件

    这时候用SocketLog最好,SocketLog通过WebSocket将调试日志打印到浏览器的console中。你还可以用它来分析开源程序,分析SQL性能,结合taint分析程序漏洞。 详情查看帮助:https://github.com/luofei614/SocketLog

    日志记录组件log4web.js.zip

    简介基于浏览器端的console的日志记录组件。支持如下特性:日志级别设置;异常提交到服务器;提交环境信息;日志Tag过滤器;如何使用浏览器下的引用[removed][removed][removed]  log4web.log("houyhea");  log4...

    Tag Manager Server Debug Console-crx插件

    绿色:已激活浏览器控制台日志-橙色:已激活调试模式-紫色:容器预览-红色:无效的debugAuth代码或TMS错误两个数字显示:-标记管理器服务器输入显示从浏览器到TMS API的提交数据。 -跟踪代码管理器服务器操作通过...

    HITpingjiao:哈工大教务处评教任务的自动脚本(在浏览器控制台内运行)

    2、在中有三个代码块,分别对应评教的评课评教材,评价教与学状态,评价实验课 三个部分的代码,将每个部分的代码分别复制到对应评教页面的控制台(console)中,按回车执行,就可以看到页面里的所有选项都已经填好了...

Global site tag (gtag.js) - Google Analytics