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 
ioexceptionaltogether, , catching @ upper level (a solution ugly in opinion) 
or
- split 
ioexceptionblock 2 catch blocks, 1connectexception, in throw, , 1 rest ofioexceptions, can log (or handle differently) - make sureconnectexceptionblock written beforeioexceptionblock 
Comments
Post a Comment