"findClass", cg.getClassName(), il, cp);
FIND_CLASS, cg.getClassName(), il, cp);
    static MethodGen generateFindClass( ClassGen cg, ConstantPoolGen cp ){                // generates:     /*   static private Class findClass(String name ) throws Exception{      try{                return Class.forName(name);           }catch( java.lang.ClassNotFoundException cne ){                throw new java.lang.NoClassDefFoundError( cne.getMessage() );           }               }      */                        InstructionList  il = new InstructionList();        MethodGen findClass = new MethodGen( ACC_PRIVATE | ACC_STATIC , // access flags        CLASS_OBJECT, // return type        new Type[] { Type.STRING }, null, // arg names        "findClass", cg.getClassName(), il, cp);                InstructionHandle start = il.append( new ALOAD(0));                il.append( new INVOKESTATIC( cp.addMethodref("java.lang.Class",        "forName",        "(Ljava/lang/String;)Ljava/lang/Class;" )        )        );                InstructionHandle h1 = il.append( new ARETURN() );                InstructionHandle h2 = il.append( new ASTORE(1) );                il.append( new NEW(cp.addClass("java.lang.NoClassDefFoundError") ) );        il.append( new DUP() );        il.append( new ALOAD(1) );        il.append( new INVOKEVIRTUAL( cp.addMethodref("java.lang.ClassNotFoundException",        "getMessage","()Ljava/lang/String;") )        );        il.append( new INVOKESPECIAL( cp.addMethodref("java.lang.NoClassDefFoundError",        CONSTRUCTOR_NAME,        "(Ljava/lang/String;)V" ))        );        il.append( new ATHROW() );                findClass.addExceptionHandler(  start, h1, h2,        new ObjectType("java.lang.ClassNotFoundException") );                        cg.addMethod( ClassFileUtils.getMethod( findClass ) );        return findClass;    }