本章内容
理解浏览器错误报告
处理错误
调试JavaScript 代码
JavaScript 一直以来被认为是最难调试的编程语言之一,因为它是动态的,且多年来没有适当的开
发工具。错误经常会以令人迷惑的浏览器消息形式抛出,比如"object expected"。这样的消息没有
上下文,因此很难理解。ECMAScript 第3 版致力于改进这个方面,引入了try/catch 和throw 语句,
以及一些错误类型,以帮助开发者在出错时正确地处理它们。几年后,JavaScript 调试器和排错工具开
始在浏览器中出现。到了2008 年,大多数浏览器支持一些JavaScript 调试能力。
有了适当的语言和开发工具,Web 开发者如今已可以实现适当的错误处理并找到问题的原因。
浏览器错误报告
所有主流桌面浏览器,包括IE/Edge、Firefox、Safari、Chrome 和Opera,都提供了向用户报告错误
的机制。默认情况下,所有浏览器都会隐藏错误信息。一个原因是除了开发者之外这些信息对别人没什
么用,另一个原因是网页在正常操作中报错的固有特性。
桌面控制台
所有现代桌面浏览器都会通过控制台暴露错误。这些错误可以显示在开发者工具内嵌的控制台中。
在前面提到的所有浏览器中,访问开发者工具的路径是相似的。可能最简单的查看错误的方式就是在页
面上单击鼠标右键,然后在上下文菜单中选择Inspect(检查)或Inspect Element(检查元素),然后再
单击Console(控制台)选项卡。
要直接进入控制台,不同操作系统和浏览器支持不同的快捷键,如下表所示。
浏 览 器 Windows/Linux Mac
Chrome Ctrl+Shfit+J Cmd+Opt+J
Firefox Ctrl+Shfit+K Cmd+Opt+K
IE/Edge F12,然后Ctrl+2 不适用
Opera Ctrl+Shift+I Cmd+Opt+I
Safari 不适用 Cmd+Opt+C
移动控制台
移动浏览器不会直接在设备上提供控制台界面。不过,还是有一些途径可以在移动设备中检查错误。
Chrome 移动版和Safari 的iOS 版内置了实用工具,支持将设备连接到宿主操作系统中相同的浏览
器。然后,就可以在对应的桌面浏览器中查看错误了。这涉及设备之间的硬件连接,且要遵循不同的操
作步骤,比如Chrome 的操作步骤参见Google Developers 网站的文章《Android 设备的远程调试入门》,
Safari 的操作步骤参见Apple Developer 网站的文章“Safari Web Inspector Guide”。
此外也可以使用第三方工具直接在移动设备上调试。Firefox 常用的调试工具是Firebug Lite,这需
要通过JavaScript 的书签小工具向当前页面中加入Firebug 脚本才可以。脚本运行后,就可以直接在移动
浏览器上打开调试界面。Firebug Lite 也有面向其他浏览器(如Chrome)的版本。
错误处理
错误处理在编程中的重要性毋庸置疑。所有主流Web 应用程序都需要定义完善的错误处理协议,
大多数优秀的应用程序有自己的错误处理策略,尽管主要逻辑是放在服务器端的。事实上,服务器端团
队通常会花很多精力根据错误类型、频率和其他重要指标来定义规范的错误日志机制。最终实现通过简
单的数据库查询或报告生成脚本就可以了解应用程序的运行状态。
错误处理在应用程序的浏览器端进展较慢,尽管其重要性一点也不低。这里有一个重要的事实:大
多数上网的人没有技术背景,甚至连什么是浏览器都不十分清楚,而且有的人不知道自己使用的是什么
浏览器。如前所述,当网页中的JavaScript 脚本发生错误时,不同浏览器的处理方式不同。不过浏览器
处理JavaScript 报告错误的默认方式对用户并不友好。最好的情况是用户自己不知道发生了什么,然后
再重试;最坏的情况是用户感觉特别厌烦,于是永远不回来了。有一个良好的错误处理策略可以让用户
知道到底发生了什么。为此,必须理解各种捕获和处理JavaScript 错误的方式。
10-07
8万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-09
1345
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)