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
MTK平台Wi-Fi学习--wifi channel 通过国家码进行功率限制和wifi eFEM 基本配置和wifi Tx SEM问题 本文介绍了WiFi功率限制配置和eFEM硬件设置方法。在功率限制方面,通过国家码可针对不同信道设置功率上限,需在rlm_txpwr_init.h文件中配置信道和功率值(单位0.5dBm),WiFi6的HE_TB模式还可分RU设置。eFEM硬件配置需参考平台设计,注意VDET接口处理,首次使用建议提交HW/SW案例审核。软件配置需获取专用FEM包,包含NVRAM、GPIO等文件,按指导合并后版本才会切换为eFEM版本。 阅读详情

相关推荐

cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用

Symbol: vcvs (Voltage Controlled Voltage Source) Vop−Von=egain⋅(Vip−Vin)V_{op}-V_{on}=egain\cdot(V_{ip}-V_{in})Vop​−Von​=egain⋅(Vip​−Vin​) 所以可以得出 ⟹Vop=egain⋅(Vip−Vin)+Von\Longrightarrow V_{op}=egain\cdot(V_{ip}-V_{in})+V_{on}⟹Vop​=egain⋅(Vip​−Vin​)+Von​ 使

大学生视野 2万+

JS try catch用法:异常处理

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

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

Xilinx System Generator多速率系统(Multi-Rate Systems)的使用

在本实验练习中,您将学习在System Generator中如何使用多个时钟域有效地实现具有多个数据速率的设计。

白码王子小张的博客 1093

【JavaScript】try、catch、finally 使用

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

3830

【Latex】【附安装文件】Miktex和TexStudio的安装与配置

这代表“构建并运行”,一般来说,我们只需要点这个按钮来运行Latex代码。保存一下代码文件,再运行一次,PDF文件会出现在与代码文件相同的文件夹下。安装完成后,你可能会跳转到一个页面中,你看到这个页面就意味着安装成功了。其实不需要你敲,你只要将下面的代码复制粘贴到你刚刚的文件中即可。成功安装MikTex后,我们需要进行更新,减少后续使用的麻烦。如果懂得将安装路径设置在你想要的盘中,你可以自己设置。双击上文的.exe文件后,你会看到如下画面。如果不懂,为避免不必要的麻烦,请直接点击“

未来就在脚下。 1万+

Unity游戏开发客户端Unity基础

Unity游戏开发客户端面经 之 Unity 篇

Sea3752的博客 2万+

JavaScript之try、catch及错误类型

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

c__dreamer的博客 850

FPGA调试利器:VIO与ILA在Vivado中的实战应用指南

本文详细介绍了Vivado中FPGA调试工具VIO与ILA的实战应用技巧。VIO作为虚拟输入/输出工具,可实时调整参数;ILA作为集成逻辑分析仪,能高效捕获内部信号。文章通过具体案例展示了如何配置ILA采样深度、触发条件,以及VIO的动态参数调整功能,帮助开发者提升上板调试效率,解决常见通信失败、数据不同步等问题。

weixin_42553471的博客 424

javascript 中的try_catch 的用法

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

Mine____的博客 854

STM32单片机:驱动ADS1115四个通道全开程序

本文介绍了德州仪器(TI)的ADS1115高精度16位模数转换器(ADC)及其应用实现。该芯片具有16位分辨率、可编程增益放大器(PGA)和低功耗特性,支持±0.256V至±6.144V量程。文章提供了完整的C语言驱动代码,包括初始化、配置寄存器读写、单次/连续转换模式设置、电压值读取等功能实现。代码通过I2C接口与ADS1115通信,支持多通道选择和不同PGA设置,可实现高精度模拟信号采集。该方案适用于需要精密测量的嵌入式系统,如传感器数据采集等应用场景。

weixin_42122070的博客 689

MATLAB算法实战应用案例精讲-【数模应用】装箱问题

装箱问题可以根据不同的维度进行分类。以下是一些常见的装箱问题二维装箱问题:二维装箱问题假设所有物品都是平面上的矩形,并且需要将它们放入平面上的容器中。这个问题的目标是找到一种装箱方案,使得物品不重叠并占据的总面积最小。三维装箱问题:三维装箱问题考虑到物品可以具有高度,并且需要将它们放入三维容器(如箱子或货柜)中。目标是找到一种装箱方案,使得物品不重叠且总体积最小。多维装箱问题:多维装箱问题是指在更高维度空间中进行装箱的问题。除了长度和宽度之外,物品可能具有其他属性,如高度、重量、形状等。

qq_36130719的博客 1572

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

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

蓝枫秋千的踩坑记录 1071

深入剖析 Wenet 下 AISHELL-1 的 run.sh 脚本:从数据准备到模型训练

run.sh脚本用于处理 AISHELL-1 数据集的整个训练和测试流程。我们将逐步分析脚本中的每个部分,包括环境变量、参数设置、各个阶段的执行等。stage: 设置脚本的起始阶段(如数据准备)。stop_stage: 设置脚本的结束阶段。通过对 Wenet 下 AISHELL-1 的run.sh脚本的详细剖析,我们希望你能更好地理解每个步骤的功能及其背后的原理。此脚本不仅为模型训练提供了便利,也为用户自定义和扩展训练流程提供了基础。希望本教程能帮助你顺利完成语音识别项目!

帅小柏的博客 1633

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

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

m0_74577714的博客 1057

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JS 使用try catch捕获异常

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

归子莫的博客 2392

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

weixin_39771351的博客 434

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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、付费专栏及课程。

余额充值