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

相关推荐

使用vcpkg快速安装opencascade并自动配置部署开发环境

广泛的开源库:vcpkg 提供了上千个流行的 C++ 开源库,用户可以通过简单的命令安装和集成这些库,包括 Boost、OpenCV、SQLite、fmt 等。确保包版本一致性:通过 vcpkg.json 文件,开发者可以指定依赖的库版本,确保项目在不同环境下的构建结果一致,避免由于依赖库版本不一致而导致的构建问题。强大的社区支持:Vcpkg 是开源项目,拥有活跃的社区和微软团队的支持,提供了稳定的更新和问题修复。快速更新:Vcpkg 社区活跃,库的更新速度较快,开发者可以迅速获得库的最新版本。

loujiand的博客 2293

JS try catch用法:异常处理

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

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

IAR安装成功的关键:STM32设备支持文件导入方法

IAR安装常卡在设备支持缺失这一步——尤其对STM32新手,没导入对应芯片包,编译直接报错。实测发现,必须通过IAR的Tools→Options→IDE→Configuration→Device Support手动加载STM32设备支持文件,否则新建工程时连芯片型号都选不到。IAR安装是否顺利,往往就差这一步。

weixin_42527589的博客 680

【JavaScript】try、catch、finally 使用

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

3830

瑞萨芯片串口配置,基于RL78芯片的串口使用配置

在这里隆重给大家介绍瑞萨编辑器CS+ for CA 的自动生成代码功能,只需要配置几个参数,就可以得到你想要的串口配置了,我现在已经忘记怎么手动配置寄存器了,哈哈。选择设置,此时将端口设置成功接下来设置时钟,根据自己的芯片所需设置相应的时钟,自己芯片是什么时钟查看数据手册和原理图可以找到。瑞萨芯片的串口配置其实和ST芯片的串口配置差不多,只是ST芯片的中文数据手册比较多,就更好配置了,找到所需要的串口配置IO口,此时将UART0 配置为引脚P61和P62,瑞萨芯片的串口配置竟然要配置串口。

qq_45315904的博客 4303

uniapp:安卓苹果APP判断是否授权开启手机位置服务+弹框引导跳转到用户手机设置位置服务开启页面,uniApp app判断是否授权位置信息权限如果位置是关闭状态则提示用户(跳转各机型位置设置页面)

uniapp APP判断是否开启位置信息服务&&判断是否授权位置信息权限,uniappapp定位权限被拒绝后,询问是否开启授权并跳转到手机设置页面,uniapp APP端 定位未授权 去手机设置里开启定位,uniapp提示用户开启定位,跳转到开启定位页面,uniapp获取当前位置及检测授权状态,uniapp中获取位置信息处理,uni-app实现定位功能_uniapp获取定位位置信息,uniapp中app是否开启定位,app获取地理位置,uniapp打开位置权限设置页面IOS,用户并没有开启微信信息服务或者没

✅ 精选推荐文章 4343

JavaScript之try、catch及错误类型

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

c__dreamer的博客 850

优快云独家 | 全网首发 | 《目标检测蓝皮书》目录

10篇文章从目标检测小白变大神

Coding... 3万+

javascript 中的try_catch 的用法

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

Mine____的博客 854

OpenHarmony WebView引擎:从Chromium魔改到分布式渲染的终极解析

ArkWeb框架提供了强大的Web应用开发能力,但同时也需要注意网络安全问题,尤其是跨域请求方面。

m0_67505153的博客 1196

stable diffusioncontrolNet 预处理器/模型的下载及安装使用教程

首先说明,controlNet 的模型 不同于stable diffusion 模型,这一点一定要区分清楚。下面提供多个ControlNet 预处理器+ 专用模型的百度网盘下载链接,都是由群友整理贡献,但各自包含的版本不同,大家可自行选择。推荐下载紫色链接内的模型,fp16版文件更小,稍微新一些的controlnet插件还添加了对control-lora的支持(注意,要求controlnet插件的版本比12月16号新(1.1.423以上)才能正常识别),推荐下载;

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3385

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

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

蓝枫秋千的踩坑记录 1071

File Load Error for Untitled.ipynb Unhandled error 解决方案

本文主要介绍了File Load Error for Untitled.ipynb Unhandled error 解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

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

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

m0_74577714的博客 1057

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

weixin_39771351的博客 434

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

余额充值