package exception;

public class JvmExTest {
    
    public static void main(String[] args) {
        try {
            // NPE
            //arraylength(null);
            //athrow(null);
            
            // ClassCastException
            checkcast();
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
    }
    
    static void arraylength(int[] x) {
        int y = x.length;
    }
    
    static void athrow(Exception ex) throws Exception {
        throw ex;
    }
    
    static void checkcast() {
        Object x = "String";
        Integer y = (Integer) x;
    }
    
//    private static void test() {
//        new NPETest().foo();
//    }
//    
//    private void foo() {
//        bar();
//    }
//    
//    private void bar() {
//        Object x = null;
//        synchronized(x) {
//            System.out.println("BAD!");
//        }
//    }
    
}

@@ -39,24 +39,40 @@
 Test %7B%0A    %0A
+    int i;%0A    %0A
     public s
@@ -100,24 +100,24 @@
 g%5B%5D args) %7B%0A
-
         try 
@@ -190,32 +190,60 @@
 //athrow(null);%0A
+            getfield(null);%0A
             %0A   
@@ -285,16 +285,18 @@
         
+//
 checkcas
@@ -528,16 +528,16 @@
 ption %7B%0A
-
         
@@ -549,32 +549,104 @@
  ex;%0A    %7D%0A    %0A
+    static void getfield(JvmExTest x) %7B%0A        int y = x.i;%0A    %7D%0A    %0A
     static void 

test getfield