首页 > 代码库 > exception
exception
1.捕获异常
try {
//lots of code...
}
catch(error)(
//user error...
//catch 代码块不是必需的
)finally{
//wrap up...
//finally代码块不是必需的,但是finally代码块不论有没有异常都一定会执行的;
}
注意:可以使用instanof 运算符和条件语句来捕捉异常的类型
2.抛出异常
问题发生时,javascript会引发异常:①计算机自动抛出异常,②我们抛出异常
我们抛出异常:
throw something;//something:可以是一个数字,一个字符串,一个error对象(new Error(‘has a error !‘))。
也可以自定义异常对象:
var error={
name:‘Division Error ‘,
message:‘Can not divide by zero.‘
}
throw error;
3.断言(Assertion)-----‘确定情况就是如此,标出不应该发生的错误‘
javascriptz中没有定义预定义的断言方法;
方法一:自行编写
/**
自定义的断言函数
*/
function assert(expression,message){
if(!expression){
throw {
name:‘Asserttion Exception‘,
massge:message
}
}
}
方法二:Firebug自带的断言方法,调用assert()方法,它是console对象的一部分:
4.单元测试---->>工具有:JSUnity ,jquery和其他框架也有单元测试插件等
JSUnity使用:
没有简单的assert()方法,但可以使用更专业的方法:
assertTrue()
assertFalse()
assertIdentical()
assertNotIdentical()
assertEqual()
assertNotEqual()
assertMatch()
assertNotMatch()
...
等等
第一步:下载jsUnity程序库,并包含到要测试的HTML页面中
第二步:定义测试
定义一系列测试最佳方法是创建一个测试套件(Suite)。测试套件定义方法有很多。
如:
//1.定义一个包围函数
var myTests=function(){
//2.在包围函数中,定义代表单独测试的子函数(可以定义多个,但是函数名称必须以"test"开始)
function testSomeMethod(){
//3.调用断言方法(所以断言函数都定义在jsUnity.assertions中)
jsUnity.assertions.assertNotUndefined(myVar);
jsUnity.assertions.assertNotNaN(volume);
...
}
} console.assert(!NaN(‘A‘),‘A is not a number‘);
第三步:调用run()方法运行测试
var results=jsUnity.run(myTests);
//results变量有多个反映结果的属性:
total:测试运行次数
passed:测试通过的次数
failed:测试失败的次数
duration:执行测试所花费的时间
第四步:记录结果
为了创建一个根据报告测试结果的记录函数,将函数定义赋予jsUnity.log属性:
jsUnity.log=function(message){
//Do something with message
...
}
补充: setup()//在测试之前执行某些准备工作
tearDown()//在测试运行之后执行某些资源销毁工作
这两个函数可以在测试套件中定义:
var myTests=function(){
function setup(){
// Do these things here.
}
function tearDown(){
//Now do these
}
function testSomeMethod(){
//单独测试的子函数(可以定义多个这样类似的方法)
}
};
exception