[Javalist] Exception elkapása
Richard O. Legendi
richard.legendi at gmail.com
2012. Aug. 30., Cs, 14:56:17 CEST
Valami sunyiság lesz itt a háttérben, ha csak feldobsz egy modális
JDialog-ot, akkor el kéne tudnod kapni a kivételt.
Ez a "duplaklikkre megnyílik az ablak" kicsit nem tiszta, tudnál egy
minimál kódot mutatni?
Esetleg az uncaughtExceptionHandler
<http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#setUncaughtExceptionHandler%28java.lang.Thread.UncaughtExceptionHandler%29>
segíthet, de nem vagyok biztos benne, hogy ezt keresed.
Ricsi
On 2012.08.30. 14:01, Vig, Balázs wrote:
> Sziasztok!
>
> Egy érdekességbe futottam bele:
> Van egy hibernate alapú Swing alkalmazásom. Ha jól olvastam, akkor
> bármilyen hibernate hiba esetén a sessiont le kell zárnom, és újat
> kell nyitnom. Ezt szeretném megoldani minél kevesebb fájdalommal. A
> hibák a runtimeexception leszármazott hibernateexception
> leszármazottjai formájában indulnak útjukra.
>
> Szóval van egy fő formom, ahonnan egy dupla klikk segítségével egy
> modális dialogra jutok. Ott egy gomb megnyomására szeretnék bekérni
> egy listát, aminek során egy hibát ejtettem.
>
> A hibát el tudom kapni a lista lekérését végző eljárásban, valamint az
> eljárás hívásakor a modális dialogban.
> Viszont nem tudom elkapni a fő formon: catch(Exception e)
>
> Eddig úgy tudtam, hogy a modális dialógok a hívó threadon belül
> futnak, és ezt látszik megerősíteni a stack trace is: szerepel benne a
> fő formon szereplő egérkezelő. Tehát véleményem szerint az
> exceptionnak odáig vissza kellene csorognia, és ott el kellene kapnom.
>
> Hol a hiba az érvelésben? Miért nem tudom a fő formon elkapni az
> exceptiont?
>
> Üdv:
> *VigB*
>
> ui: A fontosabb részeket megjelöltem -->
>
> ----------- 8< ------------
> Exception in thread "AWT-EventQueue-0"
> org.hibernate.hql.internal.ast.QuerySyntaxException: DsrProceddures is
> not mapped [from DsrProceddures order by PROC_NAME]
> at
> org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
> at
> org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
> at
> org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
> at
> org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3291)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3180)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
> at
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
> at
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
> at
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
> at
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
> at
> org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105)
> at
> org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
> at
> org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
> at
> org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:219)
> at
> org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:197)
> at
> org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1736)
> --> hibás eljárás ---> at
> dsr_framework.Helper.getAllProcedures(Helper.java:269)
> --> még itt is elkapható --> at
> dsr_framework.nodeeditor.NodeEditorDialog.btnNewProcActionPerformed(NodeEditorDialog.java:375)
> at
> dsr_framework.nodeeditor.NodeEditorDialog.access$300(NodeEditorDialog.java:23)
> at
> dsr_framework.nodeeditor.NodeEditorDialog$4.actionPerformed(NodeEditorDialog.java:117)
> at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
> at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
> at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
> at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
> at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
> at java.awt.Component.processMouseEvent(Component.java:6505)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
> at java.awt.Component.processEvent(Component.java:6270)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4861)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4687)
> at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
> at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
> at java.awt.Container.dispatchEventImpl(Container.java:2273)
> at java.awt.Window.dispatchEventImpl(Window.java:2719)
> at java.awt.Component.dispatchEvent(Component.java:4687)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
> at java.awt.EventQueue.access$000(EventQueue.java:102)
> at java.awt.EventQueue$3.run(EventQueue.java:662)
> at java.awt.EventQueue$3.run(EventQueue.java:660)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
> at java.awt.EventQueue$4.run(EventQueue.java:676)
> at java.awt.EventQueue$4.run(EventQueue.java:674)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
> at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
> at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
> at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
> at java.awt.Dialog.show(Dialog.java:1072)
> at java.awt.Component.show(Component.java:1651)
> at java.awt.Component.setVisible(Component.java:1603)
> at java.awt.Window.setVisible(Window.java:1014)
> at java.awt.Dialog.setVisible(Dialog.java:1003)
> --> itt lesz létrehozva a modal dialog --> at
> dsr_framework.NodeTreeNode.performActionEvent(NodeTreeNode.java:58)
> --> fő form --> at
> dsr_framework.DSR_Frame$PopupListener.mouseClicked(DSR_Frame.java:307)
> at
> java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
> at java.awt.Component.processMouseEvent(Component.java:6508)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
> at java.awt.Component.processEvent(Component.java:6270)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4861)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4687)
> at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
> at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
> at java.awt.Container.dispatchEventImpl(Container.java:2273)
> at java.awt.Window.dispatchEventImpl(Window.java:2719)
> at java.awt.Component.dispatchEvent(Component.java:4687)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
> at java.awt.EventQueue.access$000(EventQueue.java:102)
> at java.awt.EventQueue$3.run(EventQueue.java:662)
> at java.awt.EventQueue$3.run(EventQueue.java:660)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
> at java.awt.EventQueue$4.run(EventQueue.java:676)
> at java.awt.EventQueue$4.run(EventQueue.java:674)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
> at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
> at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120830/c24e4b0a/attachment.html>
További információk a(z) Javalist levelezőlistáról