JavaScript 异常 Exceptions
JavaScript提供了一套异常处理机制。 异常是干扰程序的正常流程的不寻常(但并非完全是出乎意料的)的事故。 当发现这样的事故时,你的程序应该抛出一个异常。
throw语句中断函数的执行。 它应该抛出一个exception对象,该对象包含一个用来识别异常类型的 name 属性和一个描述性的 message 属性。 你也可以添加其他的属性。
该exception对象将会被传递到一个try语句的catch从句。
如果在try代码块内抛出了一个异常,控制权会跳转到它的catch从句。 一个try语句只会有一个捕获所有异常的catch代码块。 如果你的处理手段取决于异常的类型,那么异常处理器必须检查异常对象的name属性来确定异常的类型。 — 《JavaScript语言精粹》
function say(msg) {
    if (typeof msg != "string") {
        throw {
            name: "TypeError",
            message: "need string",
            remedy: function() {
                alert(this.message);
            }
        }
    }
    alert(msg);
}
try {
    say(100);
} catch(e) {
    e.remedy();
}
JavaScript 异常 Exceptions的更多相关文章
- [六字真言]5.咪.功力不足,学习前端JavaScript异常
		A Guide to Proper Error Handling in JavaScript 这是关于JavaScript中异常处理的故事.如果你相信 墨菲定律 ,那么任何事情都可能出错,不,一定会出 ... 
- JavaScript异常捕获
		理论准备 ★ 异常捕获 △ 异常:当JavaScript引擎执行JavaScript代码时,发生了错误,导致程序停止运行: △ 异常抛出:当异常产生,并且这个异常生成一个错误信息: △ 异常捕获: ... 
- JavaScript 异常
		转载自:http://www.cnblogs.com/aqbyygyyga/archive/2011/10/29/2228824.html(排版格式修改了一下) 一.错误处理的重要性 以前,javas ... 
- 处理JavaScript异常的正确姿势
		译者按: 错误是无法避免的,妥善处理它才是最重要的! 原文: A Guide to Proper Error Handling in JavaScript Related Topics: 译者: Fu ... 
- javascript 异常基本语法
		http://www.w3school.com.cn/js/js_onerror.asp try...catch 的作用是测试代码中的错误. JavaScript - 捕获错误 当我们在网上冲浪时 ... 
- 松软科技Web课堂:JavaScript 异常
		JavaScript 错误 - Throw 和 Try to Catch try 语句使您能够测试代码块中的错误. catch 语句允许您处理错误. throw 语句允许您创建自定义错误. final ... 
- ArcGIS Javascript 异常之No 'Access-Control-Allow-Origin' header
		本文只描述现象与处理措施,不讨论原理. 开发过程中遇到此异常,查询后网上说是跨域访问的问题,给出的解决方案是通过JQuery的跨域访问机制来解决, 难道我需要直接找ArcGISTiledMapServ ... 
- 读书笔记 effective c++ Item 8 不要让异常(exceptions)离开析构函数
		1.为什么c++不喜欢析构函数抛出异常 C++并没有禁止析构函数出现异常,但是它肯定不鼓励这么做.这是有原因的,考虑下面的代码: class Widget { public: ... ~Widget( ... 
- Java中的异常 Exceptions
		1. 概念 exception是“exceptional event”的缩写,是指执行程序中发生的事件,破坏了程序的正常执行流程.Java 异常处理机制使程序更加健壮易于调试,它可以告诉程序员三个问题 ... 
随机推荐
- [算法]旋转矩阵问题(Spiral Matrix)
			题目一: Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spir ... 
- PE.微PE
			1.老毛桃,大白菜(20180227) ZC:我记得以前 "老毛桃"."大白菜" 之前的版本,在安装好系统之后,是没有捆绑软件的,.现在,老毛桃 安装完系统之后 ... 
- virtualbox 相关操作
			关闭 vboxmanage controlvm nenew poweroff 打开,后台运行 vboxmanage startvm centos0 --type headless 复制虚拟机镜像VBo ... 
- iis常见问题解决
			iis7以上版本部署4.0框架项目常见问题解决 配置错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault=&quo ... 
- 常用的SQL 总结
			1.去重 SELECT * FROM my where id in(SELECT MAX(id) from my GROUP BY id,iid,pid)//取 id,iid,pid重复的最大值 
- string 中的 length函数 和size函数 返回值问题
			string 中的 length函数 和 size函数 的返回值 ( 还有 char [ ] 中 测量字符串的 strlen 函数 ) 应该是 unsigned int 类型的 不可以 和 -1 ... 
- Python中如何开发一个注册接口小实例
			import flask from flask import request #想获取到请求参数的话,就得用这个 server = flask.Flask(__name__) #吧这个python文件 ... 
- HasnMap的一种遍历方式:Map.Entry 和 Map.entrySet()
			1.Map.Entry 和 Map.entrySet()分别是什么? Map.entrySet():根据名字便可知道,这是一个集合,是一个映射项的set. Map.Entry<k,v>: ... 
- Struts2 - 配置文件中result 节点详解
			每个 action 方法都将返回一个 String 类型的值, Struts 将根据这个值来决定响应什么结果. 每个 action 声明都必须包含有数量足够多的 result 元素, 每个 resul ... 
- xxx was built without full bitcode" 编译错误解决
			xxx was built without full bitcode" 编译错误解决 iOS 打包上线 All object files and libraries for bitcode ... 
