java try catch之后继续执行方法

黑-猫 2017-05-12 07:01:02
需求 导入数据 (数据近万条)
有的数据需要远程下载附件转码 有的不需要
现在是 远程下载附件或转码可能 会报错
我希望需要远程下载或转码 报错后继续执行modifyData()方法


定时器中方法
//创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
for (final FileDownBy fdb : fdbList) {
fixedThreadPool.execute(new Runnable() {
public void run() {
try {
downAndSynDataService.modifyData(fdb);
} catch (Exception e) {
e.printStackTrace();
}
}//run
});//fixedThreadPool
}//for


实现类中方法
public void modifyData(FileDownBy fdb){
try{
String name=UUIDGenerator.getUUID();
FileDownTo fdt =new FileDownTo();
int exists=1;//附件是否存在 0否 1是
if(fdb.getFileType().equals("附件")){
String suffix=fdb.getFileurl().substring(fdb.getFileurl().lastIndexOf(".")+1);
String httpurl=toFastDfs(fdb.getFileurl(), suffix);//上传文件服务器
System.out.println(httpurl);
if(existHttpPath(httpurl)){
fdt.setHttpurl(name+"."+suffix);
fdt.setLocalurl(httpurl);
fdt.setSuffix(suffix);
}else{
exists=0;
}
}
if(exists==1){
fdt.setByid(fdb.getId());
fdt.setCreateDate(new Date());
commonDao.save(fdt);
fdb.setUpdatetime(new Date());
fdb.setIsDown(1);
fdb.setCount((null==fdb.getCount()||"".equals(fdb.getCount())||fdb.getCount()==0)?1:fdb.getCount()+1);
commonDao.update(fdb);
addFileAttach(fdt,fdb,fdb.getFilename());//附件信息表导入FileAtach
addInfoPersonal(fdb.getId());//导入其他系统附件传入信息记录(附件的主表信息)
addInfoFilePremissions(fdb.getId());//导入其他系统附件传入信息记录表(附件的使用权限信息)
}else{
log.info("该附件不存在!");
}
}catch(Exception e){
updateFdbCount(fdb);//修改下载次数
log.info("下载失败:"+fdb.getFilename()+" -"+e.getMessage());
}
...全文
258 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧