在不使用Callable的情况下从线程引发异常?

天狮

因此,我处于一种方法中,该方法绝对不返回任何内容的情况。(返回类型Void)。我需要运行另一个线程。我知道您可以使用callable引发异常,但是不幸的是,只有在调用Future.get()且因为它不返回任何内容之后才引发该异常,因此调用future.get()似乎很浪费。有没有更优雅的解决方案来解决我的问题?这是我遇到的问题的模型:

public static void main(String[] args){
    Callable<Void> upStreamer = new Callable<Void>(){
        public Void call() throws IOException{
            throw new IOException("I want this exception to be thrown!");
        }
    };
    FutureTask<Void> futureTask = new FutureTask<Void>(upStreamer);
    Thread uploadThread = new Thread(futureTask);
    uploadThread.start();   
}

这是伪代码中的真正问题:

public static void main(String[] args){
new somekindOfThreadLikeThing...
     //inside the method
     if(criticalCondition == false){
        throw new IOException("halt everything and tell the programmer what's wrong.");
     }
     //Import code that is the part that needs to be multithreaded but the final references will screw it up. (There are inmutable Strings involved. Code will throw uncaught exception if criticalCondition == false. This part will also throw an exception.
}.startOrWhatever();
}
天狮

我决定使用CompletableFuture。非常感谢ssedano!

http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在不使用线程的情况下并行while循环

来自分类Dev

Java system.in可以在不使用线程的情况下与输入源代码同时工作吗

来自分类Dev

Android开发:如何在不使用应用程序的情况下运行线程

来自分类Dev

Erlang如何在不使用OS线程的情况下实现并发性?

来自分类Dev

在不使用处理程序的情况下将可运行对象附加到UI线程

来自分类Dev

在不使用./的情况下运行命令

来自分类Dev

在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

来自分类Dev

在不关闭生成器的情况下引发异常

来自分类Dev

在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

来自分类Dev

下载任务在没有网络的情况下引发异常

来自分类Dev

如何在不使用 try catch 语句的情况下全局记录异常

来自分类Dev

在我的情况下使用线程池

来自分类Dev

如何在不使用Java代码的情况下在Mule ESB中手动引发异常

来自分类Dev

在不使用传统线程原语的情况下,如何阻塞当前线程,直到OnComplete完成执行?

来自分类Dev

Java如何在不使用future.get且不阻塞父线程的情况下使线程超时

来自分类Dev

Java:如何在不使用throw语句的情况下引发自定义Runtime Exception?

来自分类Dev

htop 在不使用多线程的情况下显示一个进程正在使用的多个内核

来自分类Dev

如何在不使用循环程序和处理程序的情况下安排特定线程中的任务?

来自分类Dev

如何在不使用互斥锁的情况下从多个线程以任意索引写入可变切片?

来自分类Dev

在不使用Cognito API的情况下使用DynamoDB

来自分类Dev

在Maven上不使用Spring的情况下使用AspectJ

来自分类Dev

在不使用Visual Studio的情况下使用TFS

来自分类Dev

在不使用jQuery的情况下使用$(Selector)

来自分类Dev

在不使用sqlprefix的情况下使用迁移

来自分类Dev

是否可以在不使用rhc的情况下使用OpenShift?

来自分类Dev

如何在不使用$ scope的情况下使用$ emit / $ on?

来自分类Dev

在不使用表单的情况下使用django-summernote?

来自分类Dev

在不使用npm的情况下使用Redux

来自分类Dev

在不使用NFS的情况下使用NIS

Related 相关文章

  1. 1

    在不使用线程的情况下并行while循环

  2. 2

    Java system.in可以在不使用线程的情况下与输入源代码同时工作吗

  3. 3

    Android开发:如何在不使用应用程序的情况下运行线程

  4. 4

    Erlang如何在不使用OS线程的情况下实现并发性?

  5. 5

    在不使用处理程序的情况下将可运行对象附加到UI线程

  6. 6

    在不使用./的情况下运行命令

  7. 7

    在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

  8. 8

    在不关闭生成器的情况下引发异常

  9. 9

    在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

  10. 10

    下载任务在没有网络的情况下引发异常

  11. 11

    如何在不使用 try catch 语句的情况下全局记录异常

  12. 12

    在我的情况下使用线程池

  13. 13

    如何在不使用Java代码的情况下在Mule ESB中手动引发异常

  14. 14

    在不使用传统线程原语的情况下,如何阻塞当前线程,直到OnComplete完成执行?

  15. 15

    Java如何在不使用future.get且不阻塞父线程的情况下使线程超时

  16. 16

    Java:如何在不使用throw语句的情况下引发自定义Runtime Exception?

  17. 17

    htop 在不使用多线程的情况下显示一个进程正在使用的多个内核

  18. 18

    如何在不使用循环程序和处理程序的情况下安排特定线程中的任务?

  19. 19

    如何在不使用互斥锁的情况下从多个线程以任意索引写入可变切片?

  20. 20

    在不使用Cognito API的情况下使用DynamoDB

  21. 21

    在Maven上不使用Spring的情况下使用AspectJ

  22. 22

    在不使用Visual Studio的情况下使用TFS

  23. 23

    在不使用jQuery的情况下使用$(Selector)

  24. 24

    在不使用sqlprefix的情况下使用迁移

  25. 25

    是否可以在不使用rhc的情况下使用OpenShift?

  26. 26

    如何在不使用$ scope的情况下使用$ emit / $ on?

  27. 27

    在不使用表单的情况下使用django-summernote?

  28. 28

    在不使用npm的情况下使用Redux

  29. 29

    在不使用NFS的情况下使用NIS

热门标签

归档