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, 1 connectexception, in throw, , 1 rest of ioexceptions, can log (or handle differently) - make sure connectexception block written before ioexception block

Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -