首页 > 代码库 > 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