### Question:
IoTDBStatement implements Statement { @Override public void setFetchSize(int fetchSize) throws SQLException { checkConnection("setFetchSize"); if (fetchSize < 0) { throw new SQLException(String.format("fetchSize %d must be >= 0!", fetchSize)); } this.fetchSize = fetchSize == 0 ? Config.fetchSize : fetchSize; } IoTDBStatement(IoTDBConnection connection, TSIService.Iface client,
      TS_SessionHandle sessionHandle,
      int fetchSize, ZoneId zoneId);  IoTDBStatement(IoTDBConnection connection, TSIService.Iface client,
      TS_SessionHandle sessionHandle,
      ZoneId zoneId); @Override boolean isWrapperFor(Class<?> iface); @Override T unwrap(Class<T> iface); @Override void addBatch(String sql); @Override void cancel(); @Override void clearBatch(); @Override void clearWarnings(); @Override void close(); @Override void closeOnCompletion(); @Override boolean execute(String sql); @Override boolean execute(String arg0, int arg1); @Override boolean execute(String arg0, int[] arg1); @Override boolean execute(String arg0, String[] arg1); @Override int[] executeBatch(); @Override ResultSet executeQuery(String sql); @Override int executeUpdate(String sql); @Override int executeUpdate(String arg0, int arg1); @Override int executeUpdate(String arg0, int[] arg1); @Override int executeUpdate(String arg0, String[] arg1); @Override Connection getConnection(); @Override int getFetchDirection(); @Override void setFetchDirection(int direction); @Override int getFetchSize(); @Override void setFetchSize(int fetchSize); @Override ResultSet getGeneratedKeys(); @Override int getMaxFieldSize(); @Override void setMaxFieldSize(int arg0); @Override int getMaxRows(); @Override void setMaxRows(int num); @Override boolean getMoreResults(); @Override boolean getMoreResults(int arg0); @Override int getQueryTimeout(); @Override void setQueryTimeout(int seconds); @Override ResultSet getResultSet(); @Override int getResultSetConcurrency(); @Override int getResultSetHoldability(); @Override int getResultSetType(); @Override int getUpdateCount(); @Override SQLWarning getWarnings(); @Override boolean isCloseOnCompletion(); @Override boolean isClosed(); @Override boolean isPoolable(); @Override void setPoolable(boolean arg0); @Override void setCursorName(String arg0); @Override void setEscapeProcessing(boolean enable);  }### Answer:
@SuppressWarnings("resource") @Test(expected = SQLException.class) public void testSetFetchSize4() throws SQLException { IoTDBStatement stmt = new IoTDBStatement(connection, client, sessHandle, zoneID); stmt.setFetchSize(-1); }