java - 如何修复调用 Thread.sleep() 时未处理异常的编译错误?

标签 java exception-handling checked-exceptions

我是 Java 新手,而且对编程有点陌生(我知道直接进入 Java 可能不是最好的主意。)无论我如何尝试在我的程序。我正在做一个简单的计数程序,想在每个数字之间添加一秒的延迟,这是我目前拥有的代码:

import java.lang.*;

public class Counter
{
    public static void main(String[]args)
    {
        int i;

        for (i = 0; i <= 10; i++)
        {
            Thread.sleep(1000);
            System.out.println(i);
        }
        System.out.println("You can count to ten.");
    }
}

Thread.sleep() 的调用不会编译。 javac 编译器说,“未报告的异常 InterruptedException;必须被捕获或声明为抛出”,而 Eclipse 说,“未处理的异常类型 InterruptedException”

最佳答案

Thread.sleep 可以抛出一个已检查异常的 InterruptedException。所有检查的异常都必须被捕获和处理,否则您必须声明您的方法可以抛出它。无论是否实际抛出异常,您都需要执行此操作。未声明您的方法可以抛出的已检查异常是编译错误。

你要么需要捕获它:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
    // handle the exception...        
    // For example consider calling Thread.currentThread().interrupt(); here.
}

或者声明你的方法可以抛出InterruptedException:

public static void main(String[]args) throws InterruptedException

相关

关于java - 如何修复调用 Thread.sleep() 时未处理异常的编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005549/

相关文章:

c# - 用完全相同的代码合并 catch block ?

exception - Kotlin 删除检查异常背后的想法是什么?

java - 如何从 Java 8 lambda/流内部抛出 CHECKED 异常?

java - STS、Maven和Java运行速度非常慢

ruby-on-rails - 使用参数引发自定义异常

java - 我想使用增强的 for 循环,从用户那里获取输入并找到数组中的元素,为什么这个程序没有相应地运行?

iphone - 尝试并捕获iPhone中的功能

java - Guava 缓存并保留已检查的异常

java - 如何制作带有类的 if 语句(java)

java - 使用 Libre Office 更新 .xls 文件后,POI API 中的 org.apache.poi.POIXMLException : java. lang.reflect.InvocationTargetException