2013-03-23 2 views
0

Java에서 FTP 클라이언트에 예외가 발생할 때 수행 할 올바른 절차는 무엇입니까? 즉, FTP 세션이 활성 상태를 유지합니까 아니면 예외가 발생하면 자동으로 '종료'합니까? -이 문제가 예외 중 하나가 전화를받을 때FTP 예외 종료시 Java 종료

public boolean testHost(Host host, String path) { 
    boolean success = false; 
    try { 
     FTPClient ftp = new FTPClient(); 
     ftp.setRemoteHost(host.getIpaddress()); 
     ftp.connect(); 
     ftp.login(host.getUsername(), host.getPassword()); 
     success = ftp.connected(); 

     if (success && path != null){ 
      ftp.chdir(path); 
     }   
     ftp.quit(); 
    } catch (UnknownHostException e) { 
     LOG.info("Host IPAddress cannot be reached on " + host.getIpaddress()); 
     success = false; 
    } catch (IOException e) { 
     e.printStackTrace(); 
     success = false; 
    } catch (FTPException e) { 
     success = false; 
    } 
    return success; 
} 

quit 명령 나던 치여 :

그래서 나는이 있나요? 이 방법이 계속 히트를 치면 FTP 클라이언트에 열린 100 개의 활성 연결이있을 수 있습니까? 아니면 아무것도 걱정하지 않습니까? 당신의 어획량 중 어느 것도 방법을 종료하지 않기 때문에

public boolean testHost(Host host, String path) { 
    boolean success = false; 
    try { 
     FTPClient ftp = new FTPClient(); 
     ftp.setRemoteHost(host.getIpaddress()); 
     ftp.connect(); 
     ftp.login(host.getUsername(), host.getPassword()); 
     success = ftp.connected(); 

     if (success && path != null){ 
      ftp.chdir(path); 
     }   
    } catch (UnknownHostException e) { 
     LOG.info("Host IPAddress cannot be reached on " + host.getIpaddress()); 
     success = false; 
    } catch (IOException e) { 
     e.printStackTrace(); 
     success = false; 
    } catch (FTPException e) { 
     success = false; 
    } 
    ftp.quit(); 
    return success; 
} 

이 실행이 FTP로 계속 : 그냥 return 문이 같이

위가되도록

답변

0
은 ftp.quit() 문을 이동

. quit() 문을 실행하고 마지막으로 성공 결과를 반환합니다.

선택적으로 try 절의 끝에 finally 절을 사용하여 ftp.quit() 문을 넣을 수 있습니다.

AFAIK 선택이 우선적입니다.