javascript错误类型
ECMA-262 定义了下列 7 种错误类型,简单说明如下:
- Error:普通异常。通常与 throw 语句和 try/catch 语句一起使用。 利用属性 name 可以声明或了 解异常的类型,利用 message 属性可以设置和读取异常的详细信息。
- EvalError: 在不正确使用 eval()方法时抛出。
- SyntaxError:抛出语法错误。
- RangeError:在数字超出合法范围时抛出。
- ReferenceError:在读取不存在的变量时抛出 。
- TypeError:当一个值的类型错误时抛出该异常。
- URLError:由 URL 的编码和解码方法抛出。
其中 Error 是基类,其他错误类型都继承自该类型。因此,所有错误类型共享了一组相同的属性, 错误对象中的方法全是默认的对象方法。 Error 类型的错误很少见,如果有也是浏览器抛出的,这个基类 型的主要目的是供开发人员抛出自定义错误。
EvalError 类型的错误会在使用 eval()函数发生异常时被抛出。
//如果没有把 eval()当成函数调用,就会抛出该类型错误。
new eval(); //抛出 EvalError
eval=foo; //抛出 EvalError
RangeError 类型的错误会在数值超出相应范围时触发。 JavaScript 中经常会出现这种范围错误。
//在定义数组时,如果指定了数组不支持的项数,如-20 或 Number.MAX VALUE,就会 触发这种错误。
var itemsl = new Array(-20); //抛出RangeError
var itemsl = new Array (Number.MAX_VALUE); //抛出RangeError
在找不到对象的情况下,会发生 ReferenceError。
//在访问不存在的变量时,就会发生这种错误。
var obj = x; //在 x 并未声明的情况下抛出 ReferenceError
SyntaxError 表示语法类型错误, 当把语法错误的 JavaScript 字符串传入 eval()函数时,就会导致此类错误。
eval ("a ++ b") //抛出 SyntaxError
Type Error类型在 JavaScript 中会经常用到,在变量中保存着意外的类型时,或者在访问不存在的方法时,都会导致这种错误。错误的原因虽然多种多样,但归根结底还是由于在执行特定类型的操作时, 变量的类型并不符合要求所致。
//最常发生类型错误的情况,就是传递给函数的参数事先未经检查,结果传入类型与预期类型不相符。
var o = new 10; //抛出 TypeError
alert ("name" in true); //抛出 TypeError
Function.prototype.toString.call (’name ’); //抛出 TypeError
在使用 encodeURL()或 decodeURL()时,如果 URL 格式不正确,就会导致 URIError 错误。这种错误也很少见,因为这两个函数的容错性非常高。
javascript错误类型的更多相关文章
- 究竟 javascript 错误处理有哪些类型?
有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告:使用框架不正常情况下也会抛出错误,如果对错误一无所知,便无从下手调试.综合上述,了解错误的处理机制是多么必 ...
- javascript错误处理与调试(转)
JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑. ECMAScript 第 3 版为了解决这个问题引入了 try...catch 和 throw 语 ...
- Flow: JavaScript静态类型检查工具
Flow: JavaScript静态类型检查工具 Flow是Facebook出品的,针对JavaScript的静态类型检查工具.其代码托管在github之上,并遵守BSD开源协议. 关于Flow 它可 ...
- JavaScript错误处理
JavaScript 错误 - Throw.Try 和 Catch JavaScript 测试和捕捉 try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代 ...
- 第一百二十三节,JavaScript错误处理与调试
JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚 ...
- 1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个.下面会向大家介绍这些错误发生的原因以及如何防止. 对于这些错误发生的次数,我们是通过收集的数据统计得出的 ...
- 【转】Javascript错误处理——try…catch
无论我们编程多么精通,脚本错误怎是难免.可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因. 通常,当发送错误时脚本会立刻停止,打印至控制台. 但try...catch语法结构可以 ...
- 【转】JavaScript 错误处理与调试——“错误处理”的注意要点
try-catch语句 该语句最适合处理那些我们无法控制的错误,在明明白白地知道自己的代码会发生错误时,再使用该语句就不太合适了. ECMA-262第3版引入了try-catch语句,基本的语法如下所 ...
- 面向对象的JavaScript --- 动态类型语言
面向对象的JavaScript --- 动态类型语言 动态类型语言与面向接口编程 JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承. Jav ...
随机推荐
- 通过DT10获取程序执行过程中的实时覆盖率
DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能. 系统测试覆盖率,通常是用于判断 ...
- 基于Web的质量和测试度量指标
直观了解软件质量和测试的完整性 VectorCAST/Analytics可提供便于用户理解的web仪表盘视图来显示软件代码质量和测试完整性指标,让用户能够掌握单个代码库的趋势,或对比多个代码库的度量指 ...
- 「Python实用秘技02」给Python函数定“闹钟”
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第2期 ...
- 用Navicat连接数据库-数据库连接(MySQL演示)
用Navicat连接数据库-数据库连接(MySql演示) 已成功连接,连接方式步骤如下: 开始之前首先准备连接信息: [ 一般你可以自己去配置文件中找 或者 问连接过该数据库的人/所有者(负责人/同学 ...
- (转)synchronize线程同步例子
在CSDN开了博客后,一直也没在上面发布过文章,直到前一段时间与一位前辈的对话,才发现技术博客的重要,立志要把CSDN的博客建好.但一直没有找到好的开篇的主题,今天再看JAVA线程互斥.同步的时候又有 ...
- urllib结合 concurrent.futures 多线程下载文件。
示例: #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @Time: 2020/12/16 10:42 # @Author:zhangmingda # ...
- 请注意JS方法,方法同名,参数个数不一样是不能区分方法的,
请注意JS方法,方法同名,参数个数不一样是不能区分方法的, 所以要区分方法,只能利用方法名不同来区分,而不能利用参数个数与参数类型来分.
- Clusternet 成为首批通过工信部开源成熟度评估项目!!!
Clusternet 作为首批项目参与了<信息技术 开源 开源项目评估模型参考架构>测评,并成为通过评估的四个项目之一.<信息技术 开源 开源项目评估模型参考架构>由国防科技大 ...
- 在react项目中使用require引入图片不生效
如果使用create-react-app和require导入图像,require返回一个ES模块而不是字符串.这是因为在file-loader中,esModule选项是默认启用的. 用以下方式之一导入 ...
- 页面调用百度地图但是使用了https证书之后不显示
首先百度地图使用的都是http请求链接,但是安装了证书之后会觉得这个http不安全,所以默认请求失败 这时候我们在请求头添加 <meta http-equiv="Content-Sec ...