JavaScript中try...catch和异常处理

在JavaScript可以使用try...catch来进行异常处理。例如:
try {
foo.bar();
} catch (e) {
alert(e.name + " : " + e.message);
}


目前我们可能得到的系统异常主要包含以下6种:


EvalError: raised when an error occurs executing code in eval()
RangeError: raised when a numeric variable or parameter is outside of its valid range
ReferenceError: raised when de-referencing an invalid reference
SyntaxError: raised when a syntax error occurs while parsing code in eval()
TypeError: raised when a variable or parameter is not a valid type
URIError: raised when encodeURI() or decodeURI() are passed invalid parameters


上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法:

new Error();
new Error( " 异常信息 " );
手工抛出异常的方法如下:


try {
throw new Error( " Whoops! " );
} catch (e) {
alert(e.name + " : " + e.message);
}


如要判断异常信息的类型,可在catch中进行判断:
try {
foo.bar();
} catch (e) {
if (e instanceof EvalError) {
alert(e.name + " : " + e.message);
} else if (e instanceof RangeError) {
alert(e.name + " : " + e.message);
}
// etc
}

Error具有下面一些主要属性:

description: 错误描述 (仅IE可用).
fileName: 出错的文件名 (仅Mozilla可用).
lineNumber: 出错的行数 (仅Mozilla可用).
message: 错误信息 (在IE下同description)
name: 错误类型.
number: 错误代码 (仅IE可用).
stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
因此为了更好的了解错误信息我们可以将catch部分改为如下形式:


try {
foo.bar();
} catch (e) {
if (browserType != BROWSER_IE) {
alert(
" name: " + e.name +
" \nmessage: " + e.message +
" \nlineNumber: " + e.lineNumber +
" \nfileName: " + e.fileName +
" \nstack: " + e.stack);
}
else {
alert(
" name: " + e.name +
" \nerrorNumber: " + (e.number & 0xFFFF ) +
" \nmessage: " + e.message " );
}
}


JavaScript中的throw命令事实上可以抛出任何对象,并且我们可以在catch接受到此对象。例如:


1 try {
2 throw new Date(); // 抛出当前时间对象
3 } catch (e) {
4 alert(e.toLocaleString()); // 使用本地格式显示当前时间
5 }
6
基于淘宝商城用户购物行为数据分析系统 本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。 阅读详情

相关推荐

WSL2+Ubuntu-22.04搭建PX4仿真环境:从零避坑到一键起飞

本文详细指导在Windows系统上通过WSL2和Ubuntu-22.04搭建PX4仿真开发环境的完整流程,涵盖环境配置、源码下载、依赖安装、Gazebo仿真及常见错误解决方案,帮助开发者从零避坑实现无人机一键起飞仿真。

k8s6orchestrator的博客 670

JS try catch用法:异常处理

结构,也就是上下文环境已经改变,所以无法捕获异步任务里的错误。为了捕获到计划的函数中的异常,那么。块中的语句首先被执行。如果运行中发生了错误,控制就会转移到位于。能工作,代码必须是可执行的。换句话说,它必须是有效的。包裹了计划要执行的函数,该函数有延迟,这时。可以让异步代码同步执行,所以可以进行异常捕获。块的语句被跳过不执行。块中的语句执行完毕,或者没有发生任何错误。也不会捕获微任务的异常,道理同。内部的错误不会冒泡出来,而是被。块中的语句执行完毕,最后将执行。块中语句,其中括号中的。

前端工程师 · Vue 生态深耕者,专注多端与工程化 6486

功率半导体器件选型指南:从GTO、GTR到MOSFET、IGBT的原理与应用

功率半导体器件是电力电子系统的核心,如同电路中的智能开关,负责电能的转换与控制。其工作原理基于半导体材料的导电特性,通过控制信号精确管理电路的通断。这类器件的技术价值在于提升能效、减小体积并增强系统可靠性,广泛应用于变频器、逆变器、开关电源及新能源领域。理解不同器件如MOSFET的雪崩能量与IGBT的损耗计算,是进行高效、可靠电路设计的基础。本文聚焦于GTO、GTR、MOSFET和IGBT这四类经典全控型器件的特性对比与选型策略,帮助工程师在具体项目中做出经济可靠的选择。

cumo7370的博客 447

【JavaScript】try、catch、finally 使用

在 JavaScript 中,`try`、`catch` 和 `finally` 是处理异常和错误的代码块。`try` 包含可能出现错误的代码块,如果在执行该代码块时发生错误,则 JavaScript 引擎会抛出一个异常。`catch` 用于捕获异常并执行相应的处理,而 `finally` 在 `try` 或者 `catch` 执行完之后,都会执行其中的代码块。`try` 和 `catch` 是成对出现的,可以省略 `finally`。`try` 块中的代码如果发生错误,就立即转到处理程序 `catch`

3830

【AI智能体】Coze 搭建个人旅游规划助手实战详解

本文将详细介绍如何使用Coze平台搭建个人旅游规划助手。首先概述了AI智能体如何简化传统复杂任务的开发流程,然后重点介绍了Coze工作流的作用和核心节点类型(包括大模型、插件、知识库等)。通过实际操作演示,从创建智能体到配置多级工作流,逐步实现旅游规划功能:解析用户输入时间地点、查询必玩景点、获取景点详细信息等。该教程展示了如何利用Coze的可视化编排能力,即使非技术人员也能快速构建专业级AI应用。最终呈现的旅游助手可提供天气查询、行程建议等一站式服务。

Hello, New World! 2114

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2133

JavaScript之try、catch及错误类型

我们知道,在做项目过程中是前端和后端一起的,当我们做前端的需要后端传值的时候,有时候并没有传过来,那么我们的代码就会报错,如何解决这个问题,这时候就用到了我们前端的try、catch语法try{ } catch(e){ }try代码块里放的是如果会出错的代码,catch代码块里放的是如果try代码错误,执行catch代码。try{ console.log("a"); console.log(b...

c__dreamer的博客 850

转录组数据去批次方法整理(combat,combat-seq,removeBatchEffect)

正是因为这些非生物学的因素存在就有可能会导致我们的结果偏离真实的情况,那么实际分析的过程中研究者应当评估是否存在批次效应,并决定是否要进行去批次处理。批次效应是指样本在不同批次处理及测量的情况下引入与生物学情况不相关的技术误差,比如不同试剂耗材,不同操作者,不同的实验时间等。combat函数是基于贝叶斯框架下的调整数据批次效应的函数,主要适用于已经被过滤和标准化后的数据(combat-seq函数是基于二项回归分布下的调整数据批次效应的函数,主要适用于。值得注意的是,即使使用了所谓的去批次效应的工具,

zfyyzhys的博客 7862

javascript 中的try_catch 的用法

/* try{ 尝试执行的代码 }catch(error){ error 错误对象,try括号中代码执行的异常信息; 补救代码; } ...

Mine____的博客 854

ArcGIS利用模型构建器批量导出nc文件中的不同波段数据

ArcGIS利用模型构建器批量导出nc文件中的不同波段数据

Yuanbaokk的博客 7254

模板匹配加速之金字塔分层搜索

图像金字塔是一种多分辨率图像表示方法,它通过一系列逐渐缩小或放大的图像来表示原始图像的不同尺度。高斯金字塔(Gaussian Pyramid):通过不断下采样(降采样)生成更小的图像。拉普拉斯金字塔(Laplacian Pyramid):通过高斯金字塔和差分操作生成一组残差图像。在模板匹配中,我们主要使用高斯金字塔来实现多尺度匹配。金字塔灰度模板匹配通过多尺度搜索策略,在保持较高准确率的同时显著提升匹配速度,尤其适用于:高分辨率图像处理实时检测系统移动端设备等资源受限场景。

weixin_44969144的博客 1732

理解js异常处理和处理异常(throw,try-catch关键字)

一些概念 error,指程序中的非正常运行状态,在其他编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。 ECMAScript定义了六种类型的错误。 六种错误: SyntaxError: 语法错误 // 1. Syntax Error: 语法错误 // 1.1 变量名不符合规范 var 1 // Uncaught Syntax...

蓝枫秋千的踩坑记录 1071

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 384

JS异常处理——throw和try、catch以及debugger

让我为大家介绍一下异常处理吧!异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行。

m0_74577714的博客 1057

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JS 使用try catch捕获异常

JS 使用try catch捕获异常 文章目录JS 使用try catch捕获异常简介try catch finally使用异常处理的必要异常处理的场景try catch的注意点 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 前端是攻克客户的先锋,需要特别注意到用户体验。在开发中,由于各种问题,异常的出现时不可控的,所以需要对异常进行处理,优化用户体验。 try catch finally使用 **try**语句允许定义在

归子莫的博客 2392

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C ajax try catch,JavaScript中的try…catch和异常处理

当我们在网上冲浪时,总会看到带有 runtime 错误的 Javascript 警告框,同时会询问我们“是否进行 debug?”。像这样的错误信息或许对开发人员有用,对用户则未必。当错误发生时,他们往往会选择离开这个站点。有两种在网页中捕获错误的方法:使用 try…catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)使用 onerror 事件。这是用于捕获错...

weixin_39771351的博客 434

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JavaScript中的try...catch和异常处理

在JavaScript可以使用try...catch来进行异常处理。例如: try { foo.bar();} catch (e) { alert(e.name + ": " + e.message);} 目前我们可能得到的系统异常主要包含以下6种: EvalError: raised when an error occurs executing code in e...

weixin_33971130的博客 101

[转贴]JavaScript中try...catch和异常处理(FF及IE详细资料)

在JavaScript可以使用try...catch来进行异常处理。例如: try...{foo.bar();}catch(e)...{alert(e.name+":"+e.message);} 目前我们可能得到的系统异常主要包含以下6种: EvalError:raisedwhenanerroroccursexecutingcodeineval()RangeError:raisedwh...

lianxiangbus 153

ES6+中Promise 中错误捕捉详解——链式调用catch()或者async/await+try/catch

Promise `内部的错误(如 reject() 或 throw)`如果`没有被 .catch() 捕获`,`不会传播`到外部的同步代码或全局作用域,外部代码(如 setTimeout、console.log 等)会继续执行。 通过`链式调用 .catch()`,可以捕获 Promise 链中`任何位置的错误`,`并阻止错误传播到外部`. 如果错误在 `异步操作(如 setTimeout) 中抛出`,则会被视为`全局未捕获`错误

警警的博客 1108
上一篇: 谈谈元素节点类型的值
下一篇: 关于a标签中传递this不能正确获取的问题?
rush2012
博客等级 码龄14年 2粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值