【问题标题】:Callable without executor in java在java中无需执行器即可调用
【发布时间】:2016-03-29 00:11:34
【问题描述】:
import java.util.concurrent.Callable;
import java.io.IOException;

public class HelloWorld{

 public static void main(String []args){
    Callable<Void> callable = new Callable<Void>()
    {
        public Void call() throws IOException
        {
            return null;
        }

    };
    try
    {
        callable.call();
    }
    catch(IOException e)
    {}
 }
}

在这里我得到错误“未报告的异常异常”。我不想使用通用异常 Exception。怎么办?

【问题讨论】:

  • call() 是用call() throws Exception 定义的,所以你可以在那里改变任何东西。因为其他所有内容都是Exception 类的子类型。

标签: java multithreading exception-handling callable


【解决方案1】:

Callable 接口明确声明 call() 方法可以抛出任何异常。如果使用接口,则必须捕获异常。

如果您不使用执行器,您也许可以定义自己的接口:

public interface IOTask
{
    public void call() throws IOException;
}

而不是创建一个可调用的,而是创建一个 IOTask。

【讨论】:

    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2017-10-21
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多