程序的非正常运行状态被称为“异常”或“错误”,解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。

ECMAScript 定义了六种类型的错误:

ReferenceError :找不到对象时

TypeError :错误的使用了类型或对象的方法时

RangeError :使用内置对象的方法时,参数超范围

SyntaxError :语法写错了

EvalError :错误的使用了Eval

URIError :URI错误

除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句抛出该对象。

创建错误//创建一个错误

var err1 = Error("a is undefined!");

var err2 = new Error("a is undefined!");

console.log(typeof err1); //object

console.log(typeof err2); //object

console.log(err1); //输出字符串:'Error: a is undefined!' at test.html:21

console.log(err2); //输出字符串:'Error: a is undefined!' at test.html:21

抛出错误

throw语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch块,程序将会终止。

1、抛出了一个值为字符串的异常throw "Error"; //控制台报错: Uncaught Error

2、抛出了一个值为整数13的异常throw 13; //控制台报错: Uncaught 13

3、抛出了一个值为true的异常throw true; //控制台报错: Uncaught true

4、抛出了一个错误对象throw Error('abc'); //控制台报错: Uncaught Error: abc

throw new Error('abc'); //控制台报错: Uncaught Error: abc

5、应用举例:提示函数调用中的错误function sum(...number){

var isNum = number.every( v => !isNaN(v));

if(isNum){

return eval(number.join("+")); //数组求和

}else{

throw new Error("参数必须是数字或数字字符串!");

}

}

console.log(sum(1,2,3)); //6

console.log(sum(1,2,'3')); //6

console.log(sum(1,2,'a3')); //报错! Error: 参数必须是数字或数字字符串!

js手动抛错_javascript如何抛出错误?相关推荐

  1. java常见抛错之NullPointException抛错分析

    java.lang.NullPointerException应该算是日常开发中最常见的抛错问题之一了.常见的问题就是在引用一个对象时,因为 那么就汇总一下常见的错误原因及解决办法: 字符串equals ...

  2. javascript如何手动抛出错误?

    前言 在javascript中通常使用throw语句抛出错误,throw语句用于抛出一个用户自定义的错误. 例如:抛出了一个值为字符串的错误 throw 'abc'; 例如:抛出了一个错误对象 thr ...

  3. .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出“指定的转换无效”异常的原因

    .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出"指定的转换无效"异常的原因 参考文章: (1).NET 调用JS:WebBrowse ...

  4. 抛出错误_不用try catch,如何机智的捕获错误

    这是多个feature组合使用后实现的神奇效果,在React源码中被广泛使用. 当我读源码看到这里时,心情经历了: 懵逼 -- 困惑 -- 沉思 -- 查文档 -- 豁然开朗 看完此文,相信你也会发出 ...

  5. 当你的Python代码抛出错误,首先应该看这里!

    点击关注我哦 欢迎关注 "小白玩转Python",发现更多 "有趣" 当你写了一段漂亮的代码,却发现到它并不像你预期的那样工作时,那得是多么的沮丧.这时候就需要 ...

  6. MATLAB Appdesigner开发独立桌面App全流程(二):以实时时间显示为例介绍Timer和StartupFcn的使用以及try catch抛出错误

    1.以实时显示时间为例简单介绍Timer的使用 根据目前所了解到的资料,MATLAB调用多线程较为麻烦,并且类似parfor等语法只适用于大规模运算,而不适合两个独立的.需要并行的任务.这时,我们就需 ...

  7. linux的android工作室,Android工作室在启动时抛出错误,linux机器

    我只是将我的Android Studio从1.5升级到2.3,我只是解压缩文件夹并复制到下载文件夹中,现在当我启动android studio时,我收到了此消息:Android工作室在启动时抛出错误, ...

  8. koa --- 使用中间件多层级抛出错误

    说明 能够熟练的掌握错误的抛出,可以在一定程度上提高代码的开发效率和可读性 构造错误 本栗采用调用一个不存在的函数来抛出错误 const Koa = require('koa'); const app ...

  9. java执行python提示import os找不到_java利用Jython调用python抛出错误ImportError: No module named odbchelper...

    Python代码: import odbchelper def add(x, y): """ add method """ return x ...

最新文章

  1. Hacker(十)----常用入侵工具
  2. 无法安装gem包RMagick解决办法
  3. python里countsget_在Python中测试访问同一数据的竞争条件的方法
  4. Sun公司因为不懂销售和运营,导致陨落,最终软件还是打败了硬件
  5. 哪些计算机p玩游戏,有了这个神器,你的电脑玩什么游戏都带得动
  6. 国王游戏(洛谷-P1080)
  7. php ora-12154,ORA-12154 和 TNS-03505 监听错误的解决方法
  8. 缠论k线合并处理python实现_缠论期货:道琼斯工业指数缠论分解体系5F趋势背驰,3买能否构筑成功?...
  9. leetcode1037 有效的回旋镖(Java练习)
  10. hashmap value占用空间大小_性能优化:为什么要使用SparseArray和ArrayMap替代HashMap?...
  11. VAX 的使用快捷键
  12. 浅谈信号处理三大变换
  13. 混合开发Ionic+angular快速开发App
  14. Excel4.0宏病毒查看隐藏宏代码
  15. 做APM领域德国队,笃信技术和极简体验的听云打造历程
  16. HCIP H12-223 题库
  17. node 工具模块lodash
  18. Vue安装并使用axios发送请求
  19. pyHook pyHook3 区别_成熟男人和幼稚男区别,男人不成熟的5个特征
  20. 物联网编程语言_编程语言以学习物联网实施

热门文章

  1. 【阿里云】阿里云日志查询语法
  2. 在Echarts的barChart中,xAxis的标签如何不重叠显示?
  3. 使用iframe的正确姿势
  4. ipv6检测易语言代码
  5. Mysql常用函数(一)
  6. 微信聊天框如何隐藏(微信教程分享)
  7. mysql8.0Access denied for user 'root'@'' (using password: YES)
  8. jmeter“察看结果树”响应结果乱码
  9. Amazon EC2 Deep Dive 亚马逊EC2深度解析 Lynda课程中文字幕
  10. Ardupilot 增加一个mavlink消息(翻译官网)