jdk/test/com/sun/jdi/ControlFlow.java
changeset 2 90ce3da70b43
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 /* /nodynamiccopyright/ */ // hard coded linenumbers in other tests - DO NOT CHANGE
       
     2 /*
       
     3  * Debuggee which exercises various types of control flow
       
     4  */
       
     5 
       
     6 class ControlFlow {
       
     7     boolean b = true;
       
     8     int n = 22;
       
     9 
       
    10     public static void main(String args[]) throws Exception {
       
    11         (new ControlFlow()).go();
       
    12     }
       
    13 
       
    14     void go() throws Exception {
       
    15         if (b) {
       
    16             System.out.println("if, no else");
       
    17         }
       
    18 
       
    19         if (b) {
       
    20             System.out.println("if branch");
       
    21         } else {
       
    22             throw new Exception("Wrong branch!?");
       
    23         }
       
    24 
       
    25         if (!b) {
       
    26             throw new Exception("Wrong branch!?");
       
    27         } else {
       
    28             System.out.println("else branch");
       
    29         }
       
    30 
       
    31         try {
       
    32             throw new Exception();
       
    33         } catch (Exception e) {
       
    34             System.out.println("caught exception");
       
    35         } finally {
       
    36             System.out.println("finally");
       
    37         }
       
    38 
       
    39         // This isn't control flow at the source level,  but it is at the bytecode level
       
    40         synchronized (this) {
       
    41             System.out.println("synchronized");
       
    42         }
       
    43 
       
    44 
       
    45         for (int i = 0; i < n; i++) {
       
    46             System.out.println("Loop iteration: " + (i+1) + "/" + n);
       
    47         }
       
    48 
       
    49         switch (n) {
       
    50             case 0:
       
    51                 throw new Exception("Wrong branch!?");
       
    52             case 1:
       
    53                 throw new Exception("Wrong branch!?");
       
    54             case 2:
       
    55                 throw new Exception("Wrong branch!?");
       
    56             case 3:
       
    57                 throw new Exception("Wrong branch!?");
       
    58             case 22:
       
    59                 System.out.println("switch case");
       
    60                 break;
       
    61             default:
       
    62                 throw new Exception("Wrong branch!?");
       
    63         }
       
    64 
       
    65         switch (n) {
       
    66             case 0:
       
    67                 throw new Exception("Wrong branch!?");
       
    68             case 1:
       
    69                 throw new Exception("Wrong branch!?");
       
    70             case 2:
       
    71                 throw new Exception("Wrong branch!?");
       
    72             case 3:
       
    73                 throw new Exception("Wrong branch!?");
       
    74             default:
       
    75                 System.out.println("switch default");
       
    76                 break;
       
    77         }
       
    78     }
       
    79 }