Столкнулся с весьма странной для себя проблемой — не могу поймать исключение, генерируемое Hibernate. Что делаю: try { sessions = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.exit(0); } Смысл — хочу отловить ошибку при подключении к СУБД. Получается, что если СУБД не запущена, выдаётся следующее исключение: 24.03.2008 22:49:39 org.hibernate.cfg.Environment <clinit> INFO: Hibernate 3.2.6 24.03.2008 22:49:39 org.hibernate.cfg.Environment <clinit> INFO: hibernate.properties not found 24.03.2008 22:49:39 org.hibernate.cfg.Environment buildBytecodeProvider INFO: Bytecode provider name : cglib 24.03.2008 22:49:39 org.hibernate.cfg.Environment <clinit> INFO: using JDK 1.4 java.sql.Timestamp handling 24.03.2008 22:49:39 org.hibernate.cfg.Configuration configure INFO: configuring from resource: /hibernate.cfg.xml 24.03.2008 22:49:39 org.hibernate.cfg.Configuration getConfigurationInputStream INFO: Configuration resource: /hibernate.cfg.xml 24.03.2008 22:49:39 org.hibernate.cfg.Configuration addResource INFO: Reading mappings from resource : JTinyBroadcastLibrary/TemplateWeek.hbm.xml 24.03.2008 22:49:39 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues INFO: Mapping class: JTinyBroadcastLibrary.TemplateWeek -> TEMPLATE_WEEK 24.03.2008 22:49:39 org.hibernate.cfg.Configuration doConfigure INFO: Configured SessionFactory: null 24.03.2008 22:49:40 org.hibernate.connection.DriverManagerConnectionProvider configure INFO: Using Hibernate built-in connection pool (not for production use!) 24.03.2008 22:49:40 org.hibernate.connection.DriverManagerConnectionProvider configure INFO: Hibernate connection pool size: 1 24.03.2008 22:49:40 org.hibernate.connection.DriverManagerConnectionProvider configure INFO: autocommit mode: false 24.03.2008 22:49:40 org.hibernate.connection.DriverManagerConnectionProvider configure INFO: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/db1 24.03.2008 22:49:40 org.hibernate.connection.DriverManagerConnectionProvider configure INFO: connection properties: {useUnicode=yes, user=user, password=****, characterEncoding=utf8} 24.03.2008 22:49:40 org.hibernate.cfg.SettingsFactory buildSettings WARNING: Could not obtain connection metadata com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException MESSAGE: В соединении отказано STACKTRACE: java.net.ConnectException: В соединении отказано at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at java.net.Socket.connect(Socket.java:469) at java.net.Socket.<init>(Socket.java:366) at java.net.Socket.<init>(Socket.java:208) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744) at com.mysql.jdbc.Connection.<init>(Connection.java:1553) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverMa nagerConnectionProvider.java:110) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298) at jtinybroadcastadv.JTinyBroadcastAdvView.<init>(JTinyBroadcastAdvView.java:44) at jtinybroadcastadv.JTinyBroadcastAdvApp.startup(JTinyBroadcastAdvApp.java:19) at org.jdesktop.application.Application$1.run(Application.java:171) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:27 3) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:17 3) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) ** END NESTED EXCEPTION ** НО! Исключение не ловится. Т.е. программа продолжает работу. Если смотреть отладчиком, то блок catch пропускается и выполняются инструкции за ним. Я где-то так сильно заблуждаюсь? P.S. Если СУБД запущена, но всё работает. Логично в принципе.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от roy
Ответ на:
комментарий
от roy
Ответ на:
комментарий
от roy
Ответ на:
комментарий
от svr69
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум java не соединяется с mysql (2010)
- Форум No suitable driver found for jdbc:postgresql (2018)
- Форум Поймать исключение из коллбэка (2015)
- Форум [Hibernate] Помогите побороть исключение «No persister for» (2011)
- Форум Python: как поймать любое исключение и вывести его данные? (2012)
- Форум Исключения (2003)
- Форум hibernate (2013)
- Форум hibernate (2015)
- Форум Hibernate (2010)
- Форум Hibernate (2009)