public static <T extends CodeException> T build(CodeException e, Class<T> codeExceptionClass) throws Exception {
Class<?>[] classTypes= new Class[]{String.class,Integer.class};
Object[] params= new Object[]{e.getMessage(), e.getCode()};
Constructor<T> con=codeExceptionClass.getConstructor(classTypes);
T t = con.newInstance(params);
return t;
}