I have a singleton connector object that helps in connecting to a mysql database.

```
 public class Connector{
        private Connector(){

            }
            public static Connector getInstance(){
                if(unique == null) unique = new Connector();
                return unique;
            }

            public void connect() throws SQLException{

                conn = (Connection) DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
                if(conn != null) System.out.println("Connected");
            }

            public void close() throws SQLException{
                if(conn != null) conn.close();

            }
    }

```

But naturally I'm bubbling up the exceptions for the caller to handle. This is my calling client.

```
Connector connector = Connector.getInstance();
        try {
            connector.connect();
        } catch (SQLException e) {
            System.out.println("Connected now");
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            connector.close();
            System.out.println("Connection closed");
        }

```

Now the connector doesn't compile as it wants me to wrap the finally within a try catch since the method `close()` also throws an exception. This would mean I'd have to write the code like.

```
finally {
            try {
                connector.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("Connection closed");
        }

```

This somehow doesn't look right. What's the right way to deal with this situation. Thanks in anticipation.