先看一个例子
窗口。指针
函数(){
VaR的OBTN = document.getelementbyid(B1);
功能MTO(){
警报(123);
};
尝试/伊江
{
obtn.attachevent(onclick
}
catch(e)伊江
{
OBtn.addEventListener(单击
}
};
值得注意的是:
注册侦听器和attachevent之间的
区别是第一个
参数,前者是后者的onclick点击
注册侦听器
运行在它的元素范围
attachevent运行在全球范围内(本=窗口)
尝试...catch语句
尝试...catch可以测试代码中的
错误。试用部分包含需要运行的代码,catch部分包含在错误发生时运行的代码。
Grammar:
尝试
{
此代码 /
操作 }
捕捉(错误)
{
此错误
处理 }
注意:尝试…catch使用小写字母。大写字母会出错。
尝试...抓住…最后声明
Jscript实现错误处理。
{试
tryStatements中发生}
捕获(异常){
catchstatements }
最后{
finallystatements }
= =
参数
trystatement
有一个
选项,可能是错误的陈述。
例外
有一个选项。任何变量名。异常的初始化值是抛出的错误值。
catchstatement
可选。一个处理的相关trystatement出现的错误陈述。
finallystatements
可选:在所有其他
进程发生后无
条件执行的语句。
解释
尝试...抓住…最后声明提供了一种
方法来处理一些或所有可能在一个给定的代码块中发生的错误,同时仍保持代码运行。如果有错误,
程序员没有处理,Jscript仅提供常见错误信息的
用户,如果没有错误处理。
tryStatements参数参数包含代码,也可能是错的,而catchstatement包含处理已发生的任何错误代码。如果在tryStatements中发生发生错误,程序
控制是通过catchstatements处理。异常的初始化值是发生在tryStatements参数错误的值。如果不会发生错误,不执行的catchstatements。
如果你不能与错误相关的catchstatements tryStatements中发生处理这种错误,使用throw语句来宣传或重新抛出的错误到一个更高级的错误处理程序。
执行语句并执行所有在tryStatements中发生的错误处理catchstatements finallyStatements中声明后,可以无条件地执行。
即使一个语句返回在try或catch块捕获错误,通知,或再投入,finallystatements代码仍将被执行,finallystatments一般保证能运行,除非有一个未处理的错误。(例如,一个运行时错误在catch块中。)
样品
下面的示例说明了如何进行Jscript的特殊
情况的处理。
{试
打印(外部尝试运行);
{试
打印(嵌套尝试运行……);
抛出错误;
}
catch(e){
打印(嵌套catch捕获+ E);
扔E 再扔;
}
最后{
打印(嵌套正在运行……);
}
}
catch(e){
打印(外部捕获+ E);
}
最后{
打印(外部最后运行);
}
脚本宿主 / /窗口进行更改,名回波(S)。
函数打印({){
document.write(S);
}
将得到以下结果:
外试跑…
嵌套尝试运行…
嵌套捕捉错误
嵌套正在运行…
外抓抓错
外最后运行
下面是Javascript异常处理的一个示例。
var数组= null;
{试
document.write(数组{ 0 });
} catch(错误){
document.writeln(错误的
名字:+ err.name + );
document.writeln(的错误信息:+错误信息);
}
最后{
警报(对象为空);
}
程序的执行过程
1。数组{ 0 },当未
创建数组数组时,数组是空对象,程序中的调用数组{ 0 }将产生一个对象为null的异常。
2。赶上(ERR)语句捕获异常的印刷错误
类型,通过err.name,err.message打印出错误的细节。
三.最后是类似于java的最后,不管是否执行。
这六个值error.name信息进行归纳、总结。
使用1。EvalError:eval()与定义不一致
2。RangeError:数值跨界
三.ReferenceError:一个非法的或无法
识别的
参考价值
4。SyntaxError:语法分析错误
5。TypeError:操作数的类型错误
使用不当6。URIError:URI处理功能