diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 79e5ce3..2ece231 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -10,6 +10,10 @@
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
diff --git a/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java b/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
index 0a4558a..1493c1c 100644
--- a/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
+++ b/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
@@ -46,7 +46,7 @@
     db = d;
   }
 
-  public void flush() throws OrmException {
+  public void flush() {
   }
 
   /** @return the database that created this schema instance. */
diff --git a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
index 7e59126..164edda 100644
--- a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
+++ b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
@@ -89,8 +89,13 @@
 
   public abstract boolean handles(String url, Connection c) throws SQLException;
 
-  /** Select a better dialect definition for this connection */
-  public SqlDialect refine(final Connection c) throws SQLException {
+  /** Select a better dialect definition for this connection.
+   *
+   * @param c the connection
+   * @return a dialect instance
+   * @throws SQLException
+   */
+  public SqlDialect refine(final Connection c) throws SQLException  {
     return this;
   }
 
diff --git a/src/test/java/com/google/gwtorm/jdbc/AbstractTestJdbcAccess.java b/src/test/java/com/google/gwtorm/jdbc/AbstractTestJdbcAccess.java
index 808d66b..2c08ef2 100644
--- a/src/test/java/com/google/gwtorm/jdbc/AbstractTestJdbcAccess.java
+++ b/src/test/java/com/google/gwtorm/jdbc/AbstractTestJdbcAccess.java
@@ -225,7 +225,7 @@
   }
 
   @Test
-  public void testInsertOneException() throws OrmException, SQLException {
+  public void testInsertOneException() throws SQLException {
     sqlException = new BatchUpdateException();
     PreparedStatement insert =
         stubStatementThrowExceptionOnExecute(INSERT, sqlException);
@@ -284,7 +284,7 @@
   }
 
   @Test
-  public void testUpsertNothing() throws OrmException, SQLException {
+  public void testUpsertNothing() throws OrmException {
     classUnderTest.upsert(noData);
   }
 
@@ -300,7 +300,7 @@
   }
 
   @Test
-  public void upsertOneException() throws OrmException, SQLException {
+  public void upsertOneException() throws SQLException {
     SQLException exception = new BatchUpdateException();
     PreparedStatement update =
         stubStatementThrowExceptionOnExecute(UPDATE, exception);
diff --git a/src/test/java/com/google/gwtorm/schema/sql/SqlDialectTest.java b/src/test/java/com/google/gwtorm/schema/sql/SqlDialectTest.java
index b159b83..b191769 100644
--- a/src/test/java/com/google/gwtorm/schema/sql/SqlDialectTest.java
+++ b/src/test/java/com/google/gwtorm/schema/sql/SqlDialectTest.java
@@ -44,7 +44,7 @@
   protected Database<PhoneBookDb2> phoneBook2;
 
   @Test
-  public void testRollbackTransaction() throws SQLException, OrmException {
+  public void testRollbackTransaction() throws OrmException {
     PhoneBookDb schema = phoneBook.open();
     schema.updateSchema(executor);
     schema.people().beginTransaction(null);
