Baza danych wykrycie braku internetu

0

Witam,
napisałem program który korzysta z bazy danych w internecie i teraz próbuje zabezpieczyć go przed różnymi zdarzeniami. Natrafiłem na mały problem. Mianowicie chciałbym wyświetlić stosowny komunikat gdy komputer nie ma połączenia internetem. Myślałem, że spróbuje to załatwić prze catch(UnknownHostException ) ale nie bardzo chce mi się to skompilować.
Wydaje mi się, że kod który powinien znaleźć w try i przechwytywać UnknownHostException:

 

		try {
			polaczenie = DriverManager.getConnection("jdbc:mysql://www.db4free.net/", "zielonymarian", "jaieshaslo");
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

Gdy odłączam internet kompilator wywala mi takie błędy.

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at OknoDodawania.<init>(OknoDodawania.java:36)
at OknoEdycji.<init>(OknoEdycji.java:17)
at OknoAdmina.<init>(OknoAdmina.java:71)
at OknoLogowania.actionPerformed(OknoLogowania.java:96)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.UnknownHostException: www.db4free.net
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressFromNameService(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:247)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
... 43 more

0

Moja metoda, której używam w różnych programach korzystających z internetu:

 
private void sprawdzPolaczenie()
    {
        try 
        {
            InetAddress adres=InetAddress.getByName("google.com");
        } 
        catch (UnknownHostException ex) 
        {
            Object[] opcje={"Spróbuj ponownie", "Wyłącz program"};
            JOptionPane oknoDialogowe=new JOptionPane();
            String komunikat="Brak połączenia z internetem. \nSprawdź połączenie i kliknij \"Spróbuj ponownie\"\n lub kilknij \"Wyłącz program\" aby wyłączyć program";
            int wybor=JOptionPane.showOptionDialog(null, komunikat, "Brak połączenia z internetem", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, opcje, opcje[0]);
            switch(wybor)
            {
                case JOptionPane.YES_OPTION:
                {
                    sprawdzPolaczenie();
                    break;
                }
                case JOptionPane.NO_OPTION:
                {
                    System.exit(0);
                    break;
                }
                case JOptionPane.CLOSED_OPTION:
                {
                    System.exit(0);
                }
            }
        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1