浏览器打开控制台的快捷键

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:错误处理和调试的更多相关文章

  1. JS 错误处理与调试

    在程序开发中难免会遇到一些错误,在成千上万的代码中去寻找错误非常明显相当于大海捞针.为此,每种计算机编程语言都要它独特的一套错误处理与调试机制.当然,JavaScript也不例外. 错误发生: 运行代 ...

  2. 《JS高程》-教你如何写出可维护的代码

    1.前言   在平时工作开发中,大部分开发人员都花费大量的时间在维护其他人员的代码.很难从头开始开发新代码,很多情况下都是以他人成果为基础的,或者新增修改需求,自己写的代码也会被其他开发人员调用,所以 ...

  3. 吃透Javascript数组操作的正确姿势—再读《Js高程》

    Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备 ...

  4. 第一百二十三节,JavaScript错误处理与调试

    JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚 ...

  5. myeclipse中导入js报如下错误Syntax error on token "Invalid Regular Expression Options", no accurate correc

    今天在使用bootstrap的时候引入的js文件出现错误Syntax error on token "Invalid Regular Expression Options", no ...

  6. 17. javacript高级程序设计-错误处理与调试

    1. 错误处理与调试 l 在可能发生错误的地方使用try-catch方法,可以对错误进行及时的相应 l 使用window.onerror事件处理程序,这种方式可以接受try-catch不能处理的所有错 ...

  7. 《JS高程》创建对象的7种方式(完整版)

    一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创 ...

  8. 《JS高程》事件学习笔记

    事件:文档或浏览器窗口中发生的一些特定的交互瞬间,也即用户或浏览器自身执行的某种动作. -------------------------------------------------------- ...

  9. 《JS高程》JS-Object对象整理

    继上篇<JS高程>对象&原型笔记,对JavaScript中的Object对象进行了整理,梳理一遍~ 参考文章:详解Javascript中的Object对象 ------------ ...

  10. 【转】Eclipse去除js(JavaScript)验证错误

    这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...

随机推荐

  1. windows 线程同步

    Windows 临界区,内核事件,互斥量,信号量. 临界区,内核事件,互斥量,信号量,都能完成线程的同步,在这里把他们各自的函数调用,结构定义,以及适用情况做一个总结. 临界区: 适用范围:它只能同步 ...

  2. [Linux] Linux smaps接口文件结构

    在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中 ,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些. 400d ...

  3. 美国风投行业50年数据揭示的10条VC投资秘密法则

    美国风投行业50年数据揭示的10条VC投资秘密法则 来源:金融女王(微信号:FintechQ) 作者:Hatim Tyabji & Vijay Sathe 本文编译自以下外媒文章:  http ...

  4. extern用法

    Extern用法 用例子给你示范 // 1.cpp ; // 2.cpp 注意没有包含1.cpp #include <iostream> using namespace std; exte ...

  5. TensorFlow------TFRecords的读取实例

    TensorFlow------TFRecords的读取实例: import os import tensorflow as tf # 定义cifar的数据等命令行参数 FLAGS = tf.app. ...

  6. Python数据结构与算法(几种排序)

    数据结构与算法(Python) 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是 ...

  7. stylus使用文档总结:选择器+变量+插值+运算符+混合书写+方法

    建立好项目后我们来安装stylus npm install stylus stylus-loader --save-dev 这样就安装上了stylus. 接下来就可以使用了,使用方式分两种.一种是在. ...

  8. centos关闭sudo的ldap认证

    在新服务器上部署项目时,运行sudo命令会卡住很久,然后报错 sudo:ldap_start_tls_s(): Can't contact LDAP server 简直不能忍. 一番研究后发现是lda ...

  9. 我的自动化测试历程(Selenium+TestNG+Java+ReportNG+Jenkins)

    原地址:http://blog.csdn.net/shilinjie_8952/article/details/53380373?locationNum=11&fps=1 测试环境:Java+ ...

  10. 2019pycharm破解大法

    通过激活码激活Pycharm 1 先找到你的hosts文件: Windows电脑:c:\windows\system32\drivers\etc Linux/Mac电脑:/etc 2 编辑hosts文 ...