Atitit 流水线子线程异常处理

1.1. 大概原理是 FutureTask排除异常 FutureTask.get   can throw ExecutionException,can catch this ex... 1

1.2. code 1

1.1. 大概原理是 FutureTaskt throw 异常 FutureTask.get   can throw ExecutionException,can catch this ex...

Throwable cause = e.getCause();

if(cause.getMessage().contains("sub task err"))

{

RunEx re=(RunEx) cause;

System.out.println(JSON.toJSONString( re.returnObj));

System.out.println();

}else

ExUtil.throwExV2(e);

1.2. code

package com.cnhis.cloudhealth.clinical.clidoctor.clisendadvice.bo;

import java.util.Map;

import java.util.concurrent.Callable;

import java.util.concurrent.ExecutionException;

import java.util.concurrent.FutureTask;

import com.alibaba.fastjson.JSON;

import com.cnhis.cloudhealth.commons.util.oplogutil.AsynUtil;

import com.cnhis.cloudhealth.util.ExUtil;

import com.cnhis.cloudhealth.util.RunEx;

import com.google.common.collect.Maps;

public class FuturetaskExTest {

public static void main(String[] args) {

// TODO Auto-generated method stub

FutureTask tsksubtask();

System.out.println("--");

try {

tsk.get();

catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

catch (ExecutionException e) {

Throwable cause = e.getCause();

if(cause.getMessage().contains("sub task err"))

{

RunEx re=(RunEx) cause;

System.out.println(JSON.toJSONString( re.returnObj));

System.out.println();

}else

ExUtil.throwExV2(e);

}

//System.out.println("--");

}

public static FutureTask subtask() {

FutureTask<Object> FutureTask_updateCviBdj=newFutureTask(newCallable<Object>() {

@Override

publicObject call()   {

System.out.println("--e in sub thread");

if("a".equals("a"))

{

Mapm=Maps.newConcurrentMap();m.put("k", "vv");

thrownewRunEx("sub task err",m);

}

return"err";

}

}) ;

AsynUtil.execMeth_Ays( FutureTask_updateCviBdj,"");

return FutureTask_updateCviBdj;

}

}

Atitit 流水线子线程异常处理 1.1. 大概原理是 FutureTask排除异常 FutureTask.get can throw ExecutionException,can catc相关推荐

  1. java 异常处理线程_转:Java子线程中的异常处理(通用)

    在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了.那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相 ...

  2. java 线程 try catch_Java子线程中的异常处理(通用)

    在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了.那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相 ...

  3. 【转】Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

  4. Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

  5. Java子线程中的异常处理(通用)

    Java子线程中的异常处理(通用) 参考文章: (1)Java子线程中的异常处理(通用) (2)https://www.cnblogs.com/toplist/p/7594557.html 备忘一下.

  6. Java子线程异常及异常处理

    最近使用线程池时,了解到了在子线程中抛出异常,主线程的处理方式. Java中抛出 Exception 时必须使用 try..catch 块处理,但是抛出 RuntimeException 和 Erro ...

  7. python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))

    1. 线程的注意点介绍 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 线程之间共享全局变量 线程之间共享全局变量数据出现错误问题 2. 线程之间执行是无序的 import thread ...

  8. 主线程和子线程的同步控制

    一个线程的结束有两种途径,一种是象我们以下的样例一样.函数结束了.调用它的线程也就结束了.还有一种方式是通过函数pthread_exit来实现.另外须要说明的是,一个线程不能被多个线程等待,也就是说对 ...

  9. main线程 子线程 顺序_面试官:线程池如何按照core、max、queue的执行顺序去执行?详解...

    前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...

  10. android 关于关于子线程更新UI的一些事

    我们在看一些书或者博客时总是会看到一句话"android更新UI操作都是在Main主线程中,子线程中不能进行UI更新操作"那么,在子线程中真的不能进行UI的更新操作吗? //源码环 ...

最新文章

  1. 发展第三代AI:清华AI研究院基础理论研究中心成立,朱军任主任
  2. 5大食物千万别挑太艳的
  3. APP-V与RemotoAPP
  4. 计算机管理磁盘管理,如何打开磁盘管理?
  5. Android-使用AIDL进程间通信
  6. 程序员面试100题之二:跳台阶问题(变态跳台阶)
  7. ZooKeeper安装过程
  8. 计算广告学学习2 - 广告有效性模型
  9. 有赞美业微前端的落地总结
  10. java webmethod 参数_java详解Spring接收web请求参数的方式
  11. docker -v -it -p 详细说明
  12. java 动态给属性赋值_java中为实体对象的动态属性赋值
  13. 靠播放业务吃不饱?音乐流媒体纷纷“加电商”卖周边
  14. 关于python的文章_关于python的一篇介绍文章
  15. java程序加密_对Java代码加密的两种方式,防止反编译
  16. NAOqi.Net(C#)MotionProxy类的一些函数用法(一)
  17. 猫是如何躲开影子的?
  18. python unpacking_Python解包(Unpacking)
  19. Linux 内核clk 硬件相关层
  20. Android音视频开发入门(5)使用LAME编码一个PCM文件,为了跳槽强刷1000道Android真题

热门文章

  1. ttk.treeview鼠标悬浮文字_电竞新选择,罗技G键盘、鼠标、耳机三件套给力体验...
  2. @param注解什么意思_你对Java注解真的理解吗?
  3. fedora python3-mysql_centos 下安装python3 的MySQLdb
  4. js错误处理权威指北
  5. 为何要学习 Linux?
  6. 在asp中实现自动缩放图片(推荐)
  7. Java并发编程技术
  8. linux笔记:shell编程-正则表达式
  9. Jquery 数组操作(转)
  10. POJ 2253 1797