} catch (Exception e) {  throw new FBSQLException(e);
} catch(InvocationTargetException ex) {  Throwable t = ex.getTargetException(); if (t instanceof FBSQLException) throw (FBSQLException)t; else throw new UndeclaredThrowableException(t);  } catch (IllegalArgumentException e) { throw new UndeclaredThrowableException(e); } catch (InstantiationException e) { throw new UndeclaredThrowableException(e); } catch (IllegalAccessException e) { throw new UndeclaredThrowableException(e); } catch (NoSuchMethodException e) { throw new UndeclaredThrowableException(e);
    public static AbstractStatement createStatement(GDSHelper gdsHelper, int resultSetType,            int resultSetConcurrency, int resultSetHoldability, StatementListener statementListener)            throws FBSQLException {        try {            Constructor constructor = ClassFactory.get(ClassFactory.FBStatement).getConstructor(                    new Class[] { GDSHelper.class, int.class, int.class, int.class,                            StatementListener.class });            return (AbstractStatement) constructor.newInstance(new Object[] { gdsHelper,                    new Integer(resultSetType), new Integer(resultSetConcurrency),                    new Integer(resultSetHoldability), statementListener });        } catch (Exception e) {            throw new FBSQLException(e);        }    }