public class CompletableFuture3 {

    public static void main(String[] args) throws ExecutionException, InterruptedException {
// testJoin();
testCompletableException();
} /**
* completeExceptionally可以使得get方法不会阻塞,如果future没有完成,那调用get方法会抛出异常
* @throws ExecutionException
* @throws InterruptedException
*/
public static void testCompletableException() throws ExecutionException, InterruptedException {
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
sleep();
System.out.println("=======");
return "hello";
});
sleep();
future.completeExceptionally(new Exception());
System.out.println(future.get());
} /**
* 获取结果时,与get的区别是get会抛出检查异常,join不会抛出检查异常
*/
public static void testJoin(){
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
sleep();
System.out.println("=======");
return "hello";
});
String result = future.join();
System.out.println(result);
} private static void sleep(int sec){
try {
TimeUnit.SECONDS.sleep(sec);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

CompletableFuture3的更多相关文章

随机推荐

  1. java war包 路径--解决war包中文件路径问题

    https://blog.csdn.net/u013409283/article/details/51480948 转自:http://free-chenwei.iteye.com/blog/1507 ...

  2. MySQL GROUP BY 的问题

    拿 employee 示例数据库为例,当进行如下操作时会报错. mysql> SELECT * FROM employees GROUP BY gender; ERROR 1055 (42000 ...

  3. WPF自定义控件之图片控件 AsyncImage

    AsyncImage 是一个封装完善,使用简便,功能齐全的WPF图片控件,比直接使用Image相对来说更加方便,但它的内部仍然使用Image承载图像,只不过在其基础上进行了一次完善成熟的封装 Asyn ...

  4. ASP.NET Core框架深度学习(四)宿主对象

    11.WebHost  第六个对象 到目前为止我们已经知道了由一个服务器和多个中间件构成的管道是如何完整针对请求的监听.接收.处理和最终响应的,接下来来讨论这样的管道是如何被构建出来的.管道是在作为应 ...

  5. 易优CMS:arcview的基础用法

    [基础用法] 名称:arcview 功能:获取单条文档数据 语法: {eyou:arcview aid='文档ID'} <a href="{$field.arcurl}"&g ...

  6. django2-登录与出版社

    1.django核心功能 因为django功能很多 ,出版社可以使用到部分功能,最快最简单了解django的运行模式,每个点后续细化去梳理 django的路由 django的视图 django的模板 ...

  7. DesignPattern系列__09设计模式概述

    设计模式介绍 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案, 设计模(Design pattern)代表了最佳的实践.这些解决方案是众多软 ...

  8. Unity Pixel 人物设计(1)

    草稿: 目前进度:

  9. Android 网络加载通用Loading

    为了用户体验用好,App在网络请求时通常都会显示个进度显示圈圈,提示用户耐心等待,最脍炙人口的莫过于登录啦. 接下来我们就通过Dialog来实现,然后在BaseActivity,BaseFragmen ...

  10. HIVE SQL产生的文件数量及参数调优

    产生背景:sqoop抽取oracle数据到hive表时,只能写入到固定分区(--hive-partition-key #hive分区字段 --hive-partition-value #hive分区值 ...