老师,FTPUtil里面的connectServer方法,是否把异常抛出更合适呢

来源:8-6 后台商品图片的springmvc上传与富文本上传ftp服务器功能开发1

慕哥6062902

2020-06-03

这里如果连接报错,或者登陆失败,我感觉都该把异常抛出去,老师觉得呢。
private boolean connectServer(String ip,int port,String user,String pwd){

    boolean isSuccess = false;
    ftpClient = new FTPClient();
    try {
        ftpClient.connect(ip);
        isSuccess = ftpClient.login(user,pwd);
    } catch (IOException e) {
        logger.error("连接FTP服务器异常",e);
    }
    return isSuccess;
}
写回答

1回答

慕哥6062902

提问者

2020-06-03

private boolean uploadFile(String remotePath,List<File> fileList) throws IOException {
   boolean uploaded = true;
   FileInputStream fis = null;
   //连接FTP服务器
   if(connectServer(this.ip,this.port,this.user,this.pwd)){
       try {
           //remotePath如果不传,表示就在当前文件夹下面
           ftpClient.changeWorkingDirectory(remotePath);
           ftpClient.setBufferSize(1024);
           ftpClient.setControlEncoding("UTF-8");
           //指定这个,可以防止一些乱码的事情
           ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
           //之前在FTP服务器上配置的是一个被动模式,并且对外也开放了一个服务的被动端口范围vsftpd的安装章节,
           //这个时候打开本地的被动模式,
           ftpClient.enterLocalPassiveMode();
           for(File fileItem : fileList){
               fis = new FileInputStream(fileItem);
               ftpClient.storeFile(fileItem.getName(),fis);
           }

       } catch (IOException e) {
           logger.error("上传文件异常",e);
           uploaded = false;
           e.printStackTrace();
       } finally {
           fis.close();
           ftpClient.disconnect();
       }
   }
   return uploaded;
}

同理我觉得这里,也不需要catch,而是直接抛出。只要上传过程中碰到异常,全部抛出,由上层去处理

0
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程