La couverture de capture d'exception n'est pas transmise là où Thread.sleep est Je veux le passer d'une manière ou d'une autre, essais et erreurs Si vous mettez en veille avant l'interruption, il se met en veille et une exception est maintenant générée.
Test
public class SleepActionTest() {
@Test
public void testSleep() throws Exception {
Thread th = new Thread( ()-> {
SleepAction.sleep(1000000000);
});
th.start();
TimeUnit.MILLISECONDS.sleep(100);
th.interrupt();
}
}
SleepAction
public class SleepAction {
public static void sleep(int i) {
try {
TimeUnit.MILLISECONDS.sleep(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}