JS高程3:错误处理和调试
浏览器打开控制台的快捷键
Ctrl+shift+I
try-catch语句
语法
try{
// 可能会导致错误的代码
} catch(error){
// 在错误发生时怎么处理
}
可以自定义错误信息
try {
window.someNonexistentFunction();
} catch (error){
alert("An error happened!");
}
或者使用默认的错误信息,catch块会接收一个error对象,该对象有message属性和name属性,分别表示
message:错误信息
name:错误类型
try {
window.someNonexistentFunction();
} catch (error){
alert("An error happened!");
alert(error.message); //window.someNonexistentFunction is not a function
alert(error.name); //TypeError
}
finally子句
只要有finally子句存在,那么try和catch子句都会被忽略。(哪怕没有catch子句)
function testFinally(){
try {
return 2;
} catch (error){
return 1;
} finally {
return 0;
}
} //最后返回0
错误类型
ECMA-262 定义了下列 7 种错误类型:
Error
EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
在找不到对象的情况下,会发生 ReferenceError(这种情况下,会直接导致人所共知的"object
expected"浏览器错误)
TypeError 类型在 JavaScript 中会经常用到,在变量中保存着意外的类型时,或者在访问不存在的
方法时,都会导致这种错误。
使用console对象将错误信息输出到控制台。
console.log(...);
下面是几种避免浏览器响应 JavaScript 错误的方法。
在可能发生错误的地方使用 try-catch 语句,这样你还有机会以适当的方式对错误给出响应,
而不必沿用浏览器处理错误的机制。
使用 window.onerror 事件处理程序,这种方式可以接受 try-catch 不能处理的所有错误(仅
限于 IE、 Firefox 和 Chrome)。
另外,对任何 Web 应用程序都应该分析可能的错误来源,并制定处理错误的方案。
首先,必须要明确什么是致命错误,什么是非致命错误。
其次,再分析代码,以判断最可能发生的错误。 JavaScript 中发生错误的主要原因如下。
类型转换
未充分检测数据类型
发送给服务器或从服务器接收到的数据有错误
JS高程3:错误处理和调试的更多相关文章
- JS 错误处理与调试
在程序开发中难免会遇到一些错误,在成千上万的代码中去寻找错误非常明显相当于大海捞针.为此,每种计算机编程语言都要它独特的一套错误处理与调试机制.当然,JavaScript也不例外. 错误发生: 运行代 ...
- 《JS高程》-教你如何写出可维护的代码
1.前言 在平时工作开发中,大部分开发人员都花费大量的时间在维护其他人员的代码.很难从头开始开发新代码,很多情况下都是以他人成果为基础的,或者新增修改需求,自己写的代码也会被其他开发人员调用,所以 ...
- 吃透Javascript数组操作的正确姿势—再读《Js高程》
Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备 ...
- 第一百二十三节,JavaScript错误处理与调试
JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚 ...
- myeclipse中导入js报如下错误Syntax error on token "Invalid Regular Expression Options", no accurate correc
今天在使用bootstrap的时候引入的js文件出现错误Syntax error on token "Invalid Regular Expression Options", no ...
- 17. javacript高级程序设计-错误处理与调试
1. 错误处理与调试 l 在可能发生错误的地方使用try-catch方法,可以对错误进行及时的相应 l 使用window.onerror事件处理程序,这种方式可以接受try-catch不能处理的所有错 ...
- 《JS高程》创建对象的7种方式(完整版)
一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创 ...
- 《JS高程》事件学习笔记
事件:文档或浏览器窗口中发生的一些特定的交互瞬间,也即用户或浏览器自身执行的某种动作. -------------------------------------------------------- ...
- 《JS高程》JS-Object对象整理
继上篇<JS高程>对象&原型笔记,对JavaScript中的Object对象进行了整理,梳理一遍~ 参考文章:详解Javascript中的Object对象 ------------ ...
- 【转】Eclipse去除js(JavaScript)验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...
随机推荐
- ocx控件打印之基础篇
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实 ...
- Code Simplicity
https://www.codesimplicity.com/post/code-simplicity-the-science-of-software-development/ 下载地址: https ...
- 重写alert方法完成类似gmail的友好提示
当在网页中调用aelrt()方法的时候,系统会自动显示友好的提示方式 . 下面是css样式控制代码: /*----------------------------------------------- ...
- centos7 安装selenium和firefox
之前有一篇文章介绍过在ubuntu下安装selenium和firefox 现在介绍下centos7 注意以下都是下载的linux64位的软件,32位的请自己找下链接, 现在使用的python的版本是3 ...
- Android LayoutInflater布局填充器
Android LayoutInflater布局填充器 把一份xml布局文件转为View对象,这就是layoutinflater的作用. 对于一个没有被载入或者想要动态载入的界面,都需要使用Layou ...
- IT人士感悟(转)
我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训.现在开一个小公司,赚的钱刚够养家糊口的.看看这些刚毕业的学生,对前景也很迷茫,想抛砖引玉,谈谈自己的看法 ...
- 实现自动文本摘要(python,java)
参考资料:http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.html http://joshbohde.com/blog/d ...
- UVA 10441 - Catenyms(欧拉道路)
UVA 10441 - Catenyms 题目链接 题意:给定一些单词,求拼接起来,字典序最小的,注意这里的字典序为一个个单词比过去,并非一个个字母 思路:欧拉回路.利用并查集判联通,然后欧拉道路判定 ...
- IO/序列化/JSON
一.读写文件 1.open:打开文件 open(path, mode, encoding='xxx', errors='ignore') mode取值:rU 或 Ua 以读方式打开, 同时提供通用换行 ...
- django+nginx+uwsgi 项目部署
Django虽然自带一个Server,但只能作为开发时测试使用,我们需要一个可以稳定而持续的服务器对网站进行部署,比如Apache, Nginx, lighttpd等,本篇将利用nginx和uWSGI ...