文章目录

  • JavaScript throw 语句
  • JavaScript throw 与 try...catch
    • 示例 1:try...catch...throw 示例
  • 重新抛出异常
  • 参考文档

    在本教程中,您将借助示例了解 JavaScript throw 语句。
    在上一个教程中,您学习了使用 JavaScript try…catch 语句处理异常。try 和 catch 语句以 JavaScript 提供的标准方式处理异常。同时,可以使用 throw 语句传递用户定义的异常。
    在 JavaScript 中,throw 语句处理用户定义的异常。例如,如果某个数字除以 0,并且需要将 Infinity 视为异常,则可以使用 throw 语句来处理该异常。

JavaScript throw 语句

    throw 语句的语法是:

throw expression;

    在这里,expression 指定异常的值。
    例如,

const number = 5;
throw number/0; // generate an exception when divided by 0

    注意:表达式可以是字符串、布尔值、数字或对象值。

JavaScript throw 与 try…catch

    try…catch…throw 的语法为:

try {// body of trythrow exception;
}
catch(error) {// body of catch
}

    注意:当执行 throw 语句时,它退出块并转到 catch 块。并且 throw 语句下面的代码不会执行。

示例 1:try…catch…throw 示例
const number = 40;
try {if(number > 50) {console.log('Success');}else {// user-defined throw statementthrow new Error('The number is low');}// if throw executes, the below code does not executeconsole.log('hello');
}
catch(error) {console.log('An error caught'); console.log('Error message: ' + error);
}

    输出

An error caught
Error message: Error: The number is low

    在上述程序中,检查了一个条件。如果数字小于51,则抛出错误。这个错误是使用 throw 语句抛出的。
    throw 语句将字符串 The number is low 指定为表达式。
    注意:您还可以对标准错误使用其他内置错误构造函数: TypeError, SyntaxError, ReferenceError, EvalError, InternalError,和 RangeError。
    例如,

throw new ReferenceError('this is reference error');

重新抛出异常

    您还可以在 catch 块中使用 throw 语句来重新引发异常。例如,

const number = 5;
try {// user-defined throw statementthrow new Error('This is the throw');}
catch(error) {console.log('An error caught');if( number + 8 > 10) {// statements to handle exceptionsconsole.log('Error message: ' + error); console.log('Error resolved');}else {// cannot handle the exception// rethrow the exceptionthrow new Error('The value is low');}
}

    输出

An error caught
Error message: Error: This is the throw
Error resolved

    在上面的程序中,throw 语句在 try 块中用于捕获异常。throw 语句在 catch 块中再次出现,如果 catch 块无法处理异常,就会执行该语句。
    在这里,catch 块处理异常,没有错误发生。因此,throw 语句不需要再次出现。
    如果错误没有被 catch 块处理,throw 语句将被重新调用,并显示错误消息 Uncaught Error: The value is low 。

    上一教程 :JS try…catch…finally                                          下一教程 :JS Modules

参考文档

[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/throw

JavaScript throw 语句相关推荐

  1. JavaScript -- throw、try 和 catch

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 很想java哦. <!DOCTYPE html> <html><head&g ...

  2. throw语句以及throw “error“ 和 throw new Error(“error“)的区别

    文章目录 什么是 throw 语句? throw 语句后面跟一个对象 Error 构造函数对象 结论 什么是 throw 语句? throw 语句用来抛出一个用户自定义的异常.当前函数的执行将被停止( ...

  3. JavaScript基础第01天笔记——编程语言、计算机基础、JavaScript注释、JavaScript输入输出语句、变量的概念、变量的使用、数据类型、解释型语言和编译型语言、关键字和保留字

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  4. JavaScript基础第01天—编程语言—计算机基础—初始JavaScript—JavaScript注释—JavaScript输入输出语句—变量的使用—数据类型—关键字和保留字

    JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...

  5. 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字

    流程控制 流程控制:指代码的执行顺序,有三种方式:顺序结构.分支结构.循环结构 顺序结构: 代码从上到下,从左到右的执行顺序. 分支语句: if语句.if-else语句.if-else if-else ...

  6. 对JavaScript 标签语句的简单理解

    JavaScript 标签语句 在学习一个新东西的时候,常常难于理解一个新的概念 ,大概是因为它的名字迷惑了我们.初次看到这个标签语句时就让我非常的不解,想着这JavaScript怎么又和HTML的标 ...

  7. js中输出html代码怎么写,JavaScript输出语句

    JavaScript输出语句 JavaScript 可以通过不同的方式来输出数据: 使用 window.alert() 弹出警告框. 使用 document.write() 方法将内容写到 HTML ...

  8. 【JS】try 和 throw 语句

    文章目录 throw 语句: try 语句: 嵌套用法: throw 语句: throw语句用来抛出一个用户自定义的异常. 当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到 ...

  9. JavaScript continue 语句

    文章目录 JavaScript continue 语句的工作原理 for 循环中的 continue 示例 1:打印 i 的值 while 循环中的 continue 示例 2:计算正数 嵌套循环中的 ...

  10. JavaScript输出语句console.log输出换行代码

    描述:JavaScript输出语句console.log输出换行代码 代码: console.log("a"+ '\n' )

最新文章

  1. CCF-201612-3 -权限查询
  2. JVM---程序计数器
  3. Oozie使用java启动外部包
  4. java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
  5. 重庆邮电大学计算机学院院徽,Slide计算机学院-重庆邮电大学.PPT
  6. python装饰器setter实现原理_python装饰器、描述符模拟源码实现
  7. mysql enum_MySQL数据库中关于ENUM类型的详细解释
  8. Win2008R2创建虚拟路由
  9. 转载:百集3D动画片《精灵世纪》制作揭密
  10. Linux中RAID机制的实现
  11. ubuntu freeradius mysql_ubuntu上安装和配置FreeRadius
  12. Fences隐藏桌面图标快捷方式箭头
  13. 网站服务器 发包,如何实现CentOS不停向外发包_网站服务器运行维护,CentOS
  14. 微信支付 postman_微信刷脸支付补贴政策有哪些?
  15. 安卓APP开发发展趋势与前景
  16. opencv实现车牌识别
  17. 【实战】python-docx---每页表格固定显示行数
  18. 【修真院pm小课堂】登录注册的触发场景
  19. 广东开放大学信息安全与计算机科学那个好,贺桂英-广东开放大学信息与工程学院...
  20. answer的汉语_Answer的中文意思是什么?

热门文章

  1. 【教程】如何批量获取图片信息,尺寸、大小、路径、文件名,然后导出表格或者txt的文本,下面教你使用方法
  2. 调研14国,芒鞋踏破,这位大学教授给区块链从业者如下建议
  3. 其实我(微笑哥)是个正经男人!
  4. 天融信TopApp-LB 负载均衡系统漏洞总结
  5. 云原生架构下的 API 网关实践:Kong (三)
  6. 2022年玻璃包装容器行业市场发展环境分析预测及下游需求规模增长率研究预测
  7. 百度公司关于SEO的建议
  8. otter安装与使用终极总结
  9. 我被感动了!世间自有真爱 - 林林与静静
  10. 母婴行业竟也可以免费送?两种案例让你全面了解新的赚钱模式!