Home | History | Annotate | Download | only in Statements
      1 /**
      2  *  File Name:          try-005.js
      3  *  ECMA Section:
      4  *  Description:        The try statement
      5  *
      6  *  This test has a try with one catch block but no finally.  Same
      7  *  as try-004, but the eval statement is called from a function, not
      8  *  directly from within the try block.
      9  *
     10  *  Author:             christine (at) netscape.com
     11  *  Date:               11 August 1998
     12  */
     13     var SECTION = "try-005";
     14     var VERSION = "ECMA_2";
     15     var TITLE   = "The try statement";
     16 
     17     startTest();
     18     writeHeaderToLog( SECTION + " "+ TITLE);
     19 
     20     var tc = 0;
     21     var testcases = new Array();
     22 
     23     TryToCatch( "Math.PI", Math.PI );
     24     TryToCatch( "Thrower(5)",   "Caught 5" );
     25     TryToCatch( "Thrower(\"some random exception\")", "Caught some random exception" );
     26 
     27     test();
     28 
     29     function Thrower( v ) {
     30         throw "Caught " + v;
     31     }
     32     function Eval( v ) {
     33         return eval( v );
     34     }
     35 
     36     /**
     37      *  Evaluate a string.  Catch any exceptions thrown.  If no exception is
     38      *  expected, verify the result of the evaluation.  If an exception is
     39      *  expected, verify that we got the right exception.
     40      */
     41 
     42     function TryToCatch( value, expect ) {
     43         try {
     44             result = Eval( value );
     45         } catch ( e ) {
     46             result = e;
     47         }
     48 
     49         testcases[tc++] = new TestCase(
     50             SECTION,
     51             "eval( " + value +" )",
     52             expect,
     53             result );
     54     }
     55