code: public static void wrapMethodBodyInTryCatchDebugStatements(MethodNode methodNode) {
          BlockStatement code = (BlockStatement) methodNode.getCode();
          BlockStatement newCode = new BlockStatement();
          TryCatchStatement tryCatchStatement = new TryCatchStatement(code, new BlockStatement());
          newCode.addStatement(tryCatchStatement);
          methodNode.setCode(newCode);
          BlockStatement catchBlock = new BlockStatement();
          ArgumentListExpression logArguments = new ArgumentListExpression();
          logArguments.addExpression(new BinaryExpression(new ConstantExpression("Error initializing class: "),Token.newSymbol(Types.PLUS, 0, 0),new VariableExpression("e")));
          logArguments.addExpression(new VariableExpression("e"));
          catchBlock.addStatement(new ExpressionStatement(new MethodCallExpression(new VariableExpression("log"), "error", logArguments)));
          tryCatchStatement.addCatch(new CatchStatement(new Parameter(new ClassNode(Throwable.class), "e"),catchBlock));
      }
docs: Wraps a method body in try / catch logic that catches any errors and logs an error, but does not rethrow!
  
  @param methodNode The method node