Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
1. 语法错误(ERROR)和运行期错误(Exception)
1
1. 语法错误(ERROR)和运行期错误(Exception)
Javascript提供了两种特殊的错误处理方式
BOM包含一个onerror事件处理函数,这个window对象与图像对象上都有
同时ECMAScript定义了另一个从java中借鉴过来的try…catch结构来处理异常
错误报告、错误处理以及代码调试,一直被认为是JavaScript的弱项,直到ECMAScript3和ECMAScript4的退出才得到改善。在ECMAScript中将JS的错误分为语法错误(ERROR)和运行期错误(Exception)。
错误分类
1、语法错误:也称解析错误,发生在传统语言的编译时,在JavaScript中发生 在解释时。这些错误是由代码中的意外字符直接引起的,然后就不能直接编译/解释。发生语法错误时,就不能继续执行代码。在JavaScript中,只有在 同一个线程中的代码会受语法错误的影响。在其他线程中的代码和其他外部引用的文件中的代码,如果不依赖于包含错误的代码,则可以继续执行。
2、运行时错误:也称为异常(exception,在编译期/解释器后)。此时,问题并不出在代码的语法上,而是,尝试完成的一个操作,在某些情况下是非法的。异常只影响发生的线程,其他JavaScript线程即可继续正常的执行。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. 错误类型判断 二种方法:
方法1:通过name属性判断
方法2: 通过instanceof操作符
如:try{ var scriptStr =" var a=0;var b=1;var c=a++b;alert(c)";
eval(scriptStr);
}catch(ex)
{ if (ex instanceof SyntaxError)
{ alert("语法出错了"); } }
3. 我们常接触到的异常包括:
EvalError:用eval()函数发生异常时抛出
RangeError:数值超出相应范围时触发
ReferenceError:找不到对象的情况下
SyntaxError:把语法错误的JavaScript字符串传入eval()函数
TypeError:变量中保存着意外的类型时,或访问不存在的方法时
URIError:使用encodeURI()或decodeURI(),而URI格式不正确时
4. ------代码
function ValidException(msgx)
{
//this.type=""
this.type="ValidException";
this.msg=msgx;
}
function validOafa(isAlert)
{
$(".ati-validatebox").each(function(){
// if($(this).attr("height")>height)
var ops=( $(this).attr("data-options") );
var ops_json=eval( "({"+ops+"})" );
if(ops_json.required)
{
if( $(this).val()=="")
{
if(isAlert)
alert(ops_json.missingMessage);
throw new ValidException(ops_json.missingMessage);
}
}
});
}
try{
validOafa(true);
alert("other ...");
}catch(e){
// alert(e instanceof ValidException);
if (e instanceof ValidException)
{
alert(e.msg);
throw "stop process...";
}
}
5. 参考
javascript异常处理 - 许乐 - 博客园.htm
JavaScript高级程序设计 阅读笔记(二十) js错误处理_javascript技巧_脚本之家.htm
Javascript的异常处理介绍 - 深蓝冰封 - ITeye技术网站.htm
Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制的更多相关文章
- Java Script 学习笔记 -- 基础知识
Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...
- Java基础——异常机制
[捕获异常] 硬件的错误.输入错误.物理限制等问题,都可能导致程序运行时的异常出现. 1.异常的分类层次 在java中,异常对象都是由Throwable类继承而来的,主要分为两大类: Error和Ex ...
- 【55】java异常机制剖析
一.为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用.有异常就说明程序存在问题,有助于我们 ...
- Java基础 -- 深入理解Java异常机制
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...
- 面试题:Java必知必会:异常机制详解 背1
一.Java异常概述 在Java中,所有的事件都能由类描述,Java中的异常就是由java.lang包下的异常类描述的. Trowable是所有异常的超类. 他的常用方法printStackTrec ...
- Java必知必会:异常机制详解
一.Java异常概述 在Java中,所有的事件都能由类描述,Java中的异常就是由java.lang包下的异常类描述的. 1.Throwable(可抛出):异常类的最终父类,它有两个子类,Error与 ...
- Java核心知识体系3:异常机制详解
1 什么是异常 异常是指程序在运行过程中发生的,由于外部问题导致的运行异常事件,如:文件找不到.网络连接失败.空指针.非法参数等. 异常是一个事件,它发生在程序运行期间,且中断程序的运行. Java ...
- Java 多重catch语句的具体使用介绍
某些情况,由单个代码段可能引起多个异常.处理这种情况,你可以定义两个或更多的catch子句,每个子句捕获一种类型的异常.当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句执行.当 ...
随机推荐
- U3D内存优化
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 U3D内存优化 读了Hog关于内存管理文章 ...
- nsq多播分发和负载均衡实验
什么是nsq?请参考实时分布式消息平台nsq. 本地如何搭建nsq?请参考本地搭建nsq经验分享. 从NSQ的设计文档中得知,单个nsqd被设计为一次能够处理多个流数据,NSQ中的数据流模型是由str ...
- linux基础命令行
1.ls ls //显示所有文件(不显示隐藏文件) ls -a //显示所有文件(显示隐藏文件) ls -l //显示所有文件详细信息 ls -S //以大小排序 ls -t //以时间排序 2.cd ...
- JQuery与JavaScript onload的区别
1.window.onload 不能有多个,后面的功能会覆盖前面.而jQuery(document).ready()可以存在多个. 2.window.onload 在页面所有元素(包括图片,引用文件) ...
- [Android Pro] android root权限破解分析
许 多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简 单及安全的,破解Root权限的原理就是在手机的/s ...
- java垃圾回收机制--可达性算法
先说一些题外话,Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区,这些区分为线程私有区和线程共享区 1.线程私有区 a.程序计数器 记录正在执行的虚拟机字节码指令地址 ...
- Ubuntu挂载samba共享目录
Ubuntu中现在没有smbfs了,所以smbmount命令也用不了了,现在可以使用mount.cifs命令来挂载. Usage: mount.cifs <remotetarget> & ...
- Java中this与super
l 对象的this引用 作用: this关键字就是让类中一个方法,访问该类中的另一个方法或属性. 1.构造器中引用该构造器正在初始化的对象. 2.在方法中引用调用该方法的对象(哪个对象调用的方法,t ...
- linux shell的执行方式
./ ping.sh 这个意思 ,'./'的意思是在当前目录执行, ping.sh----------------------------------------------------------- ...
- swift -类的定义及使用
// // main.swift // ClassDemo-06 // import Foundation println("Hello, World!") //类的定义 Pers ...