java - How can we handle the ConnectException? -
i have searched lot ,but couldn't find fine answer it.i use try_catch block exception(if exception thrown 1 frame shown user tell him/her message) still show exception in console.please me.thanks.
submit() method throw exception:
private void submit() throws connectexception { string id = idfield.gettext(); char[] pass1 = passfield.getpassword(); string pass = new string(pass1); if (id.equals("") || pass.equals("")) { joptionpane.showmessagedialog(this, "you should enter id , password", "sign_in problem", joptionpane.ok_option); return; } else { boolean b = manager.test(id, pass); if (b == true) { this.setvisible(false); main.runaclient(); listframe frame = new listframe(client); frame.setvisible(true); } else { joptionpane.showmessagedialog(this, "you have entered wrong datas,try again", "sign_in problem", joptionpane.ok_option); return; } } }
i work netbeans,this action sign in button:
private void jbutton1actionperformed(java.awt.event.actionevent evt) { try { submit(); } catch (connectexception ex) { joptionpane.showmessagedialog(this, "you coudn't connect server successfully,try again", "sign_in problem", joptionpane.ok_option); }}
my runaclient method:
public static void runaclient()throws connectexception{ try { c = new socket("localhost", 5000); } catch (connectexception ex) { logger.getlogger(main.class.getname()).log(level.severe, null, ex); } catch (ioexception ex) { logger.getlogger(main.class.getname()).log(level.severe, null, ex); } }
stacktrace:
init: deps-jar: compile-single: run-single: jan 11, 2010 5:20:35 pm clientnetwork.main runaclient severe: null java.net.connectexception: connection refused: connect @ java.net.plainsocketimpl.socketconnect(native method) @ java.net.plainsocketimpl.doconnect(plainsocketimpl.java:333) @ java.net.plainsocketimpl.connecttoaddress(plainsocketimpl.java:195) @ java.net.plainsocketimpl.connect(plainsocketimpl.java:182) @ java.net.sockssocketimpl.connect(sockssocketimpl.java:366) @ java.net.socket.connect(socket.java:518) @ java.net.socket.connect(socket.java:468) @ java.net.socket.<init>(socket.java:365) @ java.net.socket.<init>(socket.java:179) @ clientnetwork.main.runaclient(main.java:29) @ clientgui.mainframe.submit(mainframe.java:335) @ clientgui.mainframe.jbutton1actionperformed(mainframe.java:233) @ clientgui.mainframe.access$400(mainframe.java:34) @ clientgui.mainframe$5.actionperformed(mainframe.java:122) @ javax.swing.abstractbutton.fireactionperformed(abstractbutton.java:1995) @ javax.swing.abstractbutton$handler.actionperformed(abstractbutton.java:2318) @ javax.swing.defaultbuttonmodel.fireactionperformed(defaultbuttonmodel.java:387) @ javax.swing.defaultbuttonmodel.setpressed(defaultbuttonmodel.java:242) @ javax.swing.abstractbutton.doclick(abstractbutton.java:357) @ javax.swing.plaf.basic.basicrootpaneui$actions.actionperformed(basicrootpaneui.java:191) @ javax.swing.swingutilities.notifyaction(swingutilities.java:1636) @ javax.swing.jcomponent.processkeybinding(jcomponent.java:2849) @ javax.swing.keyboardmanager.firebinding(keyboardmanager.java:267) @ javax.swing.keyboardmanager.firekeyboardaction(keyboardmanager.java:216) @ javax.swing.jcomponent.processkeybindingsforallcomponents(jcomponent.java:2926) @ javax.swing.jcomponent.processkeybindings(jcomponent.java:2918) @ javax.swing.jcomponent.processkeyevent(jcomponent.java:2812) @ java.awt.component.processevent(component.java:5815) @ java.awt.container.processevent(container.java:2058) @ java.awt.component.dispatcheventimpl(component.java:4410) @ java.awt.container.dispatcheventimpl(container.java:2116) @ java.awt.component.dispatchevent(component.java:4240) @ java.awt.keyboardfocusmanager.redispatchevent(keyboardfocusmanager.java:1848) @ java.awt.defaultkeyboardfocusmanager.dispatchkeyevent(defaultkeyboardfocusmanager.java:697) @ java.awt.defaultkeyboardfocusmanager.predispatchkeyevent(defaultkeyboardfocusmanager.java:962) @ java.awt.defaultkeyboardfocusmanager.typeaheadassertions(defaultkeyboardfocusmanager.java:834) @ java.awt.defaultkeyboardfocusmanager.dispatchevent(defaultkeyboardfocusmanager.java:661) @ java.awt.component.dispatcheventimpl(component.java:4282) @ java.awt.container.dispatcheventimpl(container.java:2116) @ java.awt.window.dispatcheventimpl(window.java:2429) @ java.awt.component.dispatchevent(component.java:4240) @ java.awt.eventqueue.dispatchevent(eventqueue.java:599) @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:273) @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:183) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:173) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:168) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:160) @ java.awt.eventdispatchthread.run(eventdispatchthread.java:121)
you posted code in previous question: sign in button has no visible effect in java application
judging runaclient
method, logging exception , eating (not throwing further).
public static void runaclient() { try { c = new socket("localhost", 5000); } catch (unknownhostexception ex) { logger.getlogger(main.class.getname()).log(level.severe, null, ex); } catch (ioexception ex) { logger.getlogger(main.class.getname()).log(level.severe, null, ex); } }
the second catch (ioexception
) should not log , should throw exception. actually, want split catch connectexception catch throw , ioexception catch can handle separately.
edit: i'll extend bit. connectexception
extends remoteexception
in turn extends ioexception
, catching , logging in runaclient
method. can 2 things:
- remove
ioexception
altogether, , catching @ upper level (a solution ugly in opinion)
or
- split
ioexception
block 2 catch blocks, 1connectexception
, in throw, , 1 rest ofioexception
s, can log (or handle differently) - make sureconnectexception
block written beforeioexception
block
Comments
Post a Comment