首页 > 解决方案 > 从不同类的单独方法调用包含 throw InterruptedException 的方法

问题描述

我正在尝试编写一个程序,其中每个类都有单独的类和方法,这些类和其他类的方法交叉调用。下面是我想从另一个类的另一个方法调用的编码方法。

public class walk{
    public void walk() throws InterruptedException {
        Printer printer = new Printer();
        printer.start();
    }
}

这是单独类中的另一个方法调用它的方式。

public class Runner{
    public static void main(String [] args) {
        walk w1 = new walk();
        w1.walk();
    }
}

弹出的错误是error: unreported exception InterruptedException; 必须被捕获或声明为被抛出,并且它指出问题出在以下代码行。

w1.walk();

有谁知道如何从一个单独的类中调用这个方法,或者我在公共 void 行上做错了什么?

标签: java

解决方案


InterruptedException不扩展 RuntimeException,您必须在调用时使用 try-catch 块处理声明的异常walk()

try {
    w1.walk();
} catch (InterruptedException e) {
    // TODO Handle exception, e.g. log it or notify the user.
}

另一种解决方案是使用 throws 在调用方法的方法签名中声明异常:

public void x() throws InterupptedException
    walk w1 = new walk();
    w1.walk();
}

当您想将异常处理传递给方法的调用者时,第二种方法是可行的。您可以声明主方法以引发异常,但恕我直言,主方法甚至应该捕获不可恢复的异常并至少记录它们。

Java 教程可以在处理异常时为您提供一些指导,我的建议是阅读Catch 或 Specify Requirement并熟悉 Java 中的三种异常。


推荐阅读