s捕捉异常处理是使用js try catch方式

2023-11-01

<script language="javascript"> 
try 
{ 
throw new Error(10,"asdasdasd") 
} 
catch (e) 
{ 
alert(e.message); 
alert(e.description) 
alert(e.number) 
alert(e.name) 
throw new Error(10,"asdasdasd") 
} 

</script>  

在JavaScript可以使用try...catch来进行异常处理。例如:  

try {
 foo.bar();
} catch (e) {
 alert(e.name + ": " + e.message);
}
目前我们可能得到的系统异常主要包含以下6种:

EvalError: 错误发生在eval()中 
RangeError: 数值超出范围 
ReferenceError: 引用不可用
SyntaxError: 语法错误,错误发生在eval()中,因为其它点发生SyntaxError会无法通过解释器  
TypeError: 变量类型不是预期的  
URIError: 错误发生在encodeURI()或decodeURI()中 
上面的六种异常对象都继承自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 + 
      "message: " + e.message + 
      "lineNumber: " + e.lineNumber + 
      "fileName: " + e.fileName + 
      "stack: " + e.stack);           
 } 
 else {                       
     alert("name: " + e.name +        
      "errorNumber: " + (e.number & 0xFFFF ) + 
      "message: " + e.message");           
 } 
}
JavaScript中的throw命令事实上可以抛出任何对象,并且我们可以在catch接受到此对象。例如:

try {
 throw new Date(); // 抛出当前时间对象 
} catch (e) {
 alert(e.toLocaleString()); // 使用本地格式显示当前时间 
}

转载于:https://my.oschina.net/tlhjy/blog/688216

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

s捕捉异常处理是使用js try catch方式 的相关文章

随机推荐

  • 神经网络的几点思考

    2022 04 09 1 小卷积核和大卷积核有没有可能组合使用效果更好 比如在目标检测网络 人脸识别网络 2 人脸识别中共享卷积有效吗 共享卷积和局部卷积有没有可能组合使用效果会更好 人脸识别 人脸属性 人脸关键点 活体检测应该都可以用局部
  • PGCM-PostgreSQL备份工具 pgBackRest使用

    更多精彩内容 请登录 ke sandata com cn 前言 PGCM pgBackRest是一款开源的备份还原工具 目标旨在为备份和还原提供可靠易用的备份 特性 并行备份和还原 备份操作期间压缩通常是其瓶颈所在 pgBackRest通过
  • Zotero如何在word中引用跳转到参考文献/建立超链接

    省流目录 文章目录 问题 如标题 解决方案 1 打开word gt 视图 gt 宏 gt 点击 选查看宏 2 创建宏 3 将代码全部替换为下面这个 4 Ctrl s保存 左下角重命名为ZoteroLinkCitation 关闭页面 5 查看
  • clickhouse-server.service: main process exited, code=exited, status=232/ADDRESS_FA

    使用 systemctl start clickhouse server 启动失败 报错信息如下 root hantest mysql systemctl status clickhouse server clickhouse server
  • 密码学-传统加密技术

    传统加密技术 对称密码模型 明文 plaintext 加密算法 encryption 密钥 key 密文 cipher 解密算法 decryption 传统密码的要求 加密算法足够强 密钥安全 采用对称密码 首要的安全问题是密钥的保密性 密
  • web前端 --- 常见页面标签和语义化标签

    1 HTML5 1 含义 HTML Hypertext Markup Language 超文本标记语言 是一种用于创建网页的标准标记语言 您可以使用 HTML 来建立自己的 WEB 站点 HTML 运行在浏览器上 由浏览器来解析 声明为 H
  • Modbus 与 RS485 的区别与联系

    目前道长入坑了一家智能家居公司 以后会分享记录一些智能家居相关的知识 如果有问题 希望小伙伴交流指正 一 RS 485 1 1 RS 485 来源 RS485是美国电子工业协会 EIA 在1983年批准了一个新的平衡传输标准 balance
  • java线程状态

    1 新建 NEW 新创建了一个线程对象 2 可运行 RUNNABLE 调用了对象的start 方法 位于可运行线程池中 等待被线程调度选中 获取cpu 的使用权 3 运行 RUNNING 可运行状态 runnable 的线程获得了cpu 时
  • Django-全局配置文件&路由配置文件(二)

    一 全局配置文件 settings py 注意文件中注释 Django settings for mysite project Generated by django admin startproject using Django 2 2
  • 大数据Flink简介与架构剖析并搭建基础运行环境

    文章目录 前言 Flink 简介 Flink 集群剖析 Flink应用场景 Flink基础运行环境搭建 Docker安装 docker compose文件编写 创建并运行容器 访问Flink web界面 前言 前面我们分别介绍了大数据计算框
  • spring

    1 Spring简介 1 1 Spring概述 官网地址 https spring io Spring 是最受欢迎的企业级 Java 应用程序开发框架 数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好 易于测试 可重用的
  • 【算法】队列——解密QQ号

    新学期开始了 小哈是小哼的新同桌 小哈是个小美女哦 小哼向小哈询问QQ号 小哈当然不会直接告诉小哼啦 原因嘛你懂的 所以小哈给了小哼一串加密过的数字 同时小哈也告诉了小哼解密规则 规则是这样的 首先将第1个数删除 紧接着将第2个数放到这串数
  • CentOS7添加永久路由之一

    一 默认在系统中添加的路由会随着网络重新启动丢失 root vm al bj2 web01 route n Kernel IP routing table Destination Gateway Genmask Flags Metric R
  • Vue 渲染流程详解

    在 Vue 里渲染一块内容 会有以下步骤及流程 第一步 解析语法 生成AST 第二步 根据AST结果 完成data数据初始化 第三步 根据AST结果和DATA数据绑定情况 生成虚拟DOM 第四步 将虚拟DOM 生成真正的DOM插入到页面中
  • python针对Excel文件处理

    一 Excel文件处理介绍 需要用到第三方库 openpyxl 最常用 xlrd xlwt pandas 安装第三方库 pip install openpyxl 二 openpyxl模块 openpyxl模块的三大重要组件 1 工作簿 包含
  • 前置声明(Forward declaration)

    前置声明是指声明一个类或结构体而不定义它 比如 class A struct B 在声明之后 定义之前 该类或结构体被称为不完全类型 incompletion type 意思是 知道类型A和B 但不知道他包含哪些内容 不完全类型的使用有一些
  • pip指定路径安装文件

    pip指定路径安装文件 由于某些原因 我们使用pip命令安装一些模块时 速度慢的离谱 所以我们有时会用其他方式在网上下载资源包 以zh core web lg 2 3 1 tar gz为例 再通过pip安装 格式 pip install t
  • loadrunner+fiddler代理录制

    今天在录制脚本的时候遇到一个问题 因为公司的电脑IE版本为IE9 且不能降低版本 所以设置了个loadrunner代理 代理是设置了应用服务器的IP和端口 但是在录制的时候很多静态文件没有出来 因为loadrunner代理只能代理录制代理I
  • Spark-特征选择(scala)

    spark特征选择 基于scala语言编写 ChiSqSelector 特征选择试图识别用来构建模型的相关特征 它减少了特征空间的大小 既可以提高速度又可以提高统计学习行为的结果 ChiSqSelector实现了卡方特征选择 它能够操作带有
  • s捕捉异常处理是使用js try catch方式

    在JavaScript可以使用try catch来进行异常处理 例如 try foo bar catch e alert e name e message 目前我们可能得到的系统异常