主线程的睡眠正在抛出中断异常

2022-09-04 01:53:33

我有执行的主线程,它会产生新的线程。在 main() 的执行主线程中,我正在调用 .何时收到“未处理的异常类型?”。Thread.sleep()InterruptedException

我不确定为什么我会得到这个。我认为这是因为我需要对主线程的引用,所以我继续通过.Thread.currentThread()

这难道不是让线程进入睡眠状态的方法吗?我需要做的是让主线程等待/睡眠/延迟,直到它再次完成所需的工作。


答案 1

您看到的是编译错误,因为您没有正确处理已检查的异常(在本例中)。处理意味着执行下列操作之一:InterruptedException

1) 将方法声明为 ,从而要求调用方处理异常throws InterruptedException

2)用块捕捉它。例如:try{..}catch(..){..}

try {
    Thread.sleep(1500);
} catch(InterruptedException e) {
    System.out.println("got interrupted!");
}

InterruptedException用于指示当前线程在执行某些阻塞操作(例如,可中断 IO、等待、休眠)时已被外部线程中断


答案 2

在定义开始的行中,只需包含 throws Exception。我也面临着类似的问题,这很有帮助。在此包含之后,您不需要在 try-catch 语句中包含 Thread.sleep(xx);