How do I fix a compilation error for unhandled exception on call to Thread.sleep()?

主宰稳场 提交于 2019-11-26 07:46:48

问题


I am new to Java and kind of new to programming (I know diving straight into Java probably wasn\'t the greatest idea.) and I\'ve been getting an error consistently no matter how I try to add a pause in my program. I am doing a simple counting program and want to add a one second delay between each number here is the code I have so far:

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.\");
    }
}

The call to Thread.sleep() won\'t compile. The javac compiler says, \"unreported exception InterruptedException; must be caught or declared to be thrown\" and Eclipse says, \"Unhandled exception type InterruptedException\"


回答1:


Thread.sleep can throw an InterruptedException which is a checked exception. All checked exceptions must either be caught and handled or else you must declare that your method can throw it. You need to do this whether or not the exception actually will be thrown. Not declaring a checked exception that your method can throw is a compile error.

You either need to catch it:

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

Or declare that your method can throw an InterruptedException:

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

Related

  • Lesson - Exceptions
  • When does Java's Thread.sleep throw InterruptedException?
  • Java theory and practice: Dealing with InterruptedException



回答2:


You can get rid of the first line. You don't need import java.lang.*;

Just change your 5th line to:

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


来源:https://stackoverflow.com/questions/14005549/how-do-i-fix-a-compilation-error-for-unhandled-exception-on-call-to-thread-sleep

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!