Java : TimeoutException (Thread) 示例
Java 中的 TimeoutException (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 TimeoutException 方法的代码示例。
注解 :
- 本文可能使用了翻译软件以方便阅读。 另请查看英文原文。
简介
阻塞操作超时时抛出异常。指定了超时的阻塞操作需要一种指示超时已发生的方式。许多此类操作可以返回一个指示超时的值;如果无法返回或不希望返回,则应声明并抛出 TimeoutException。 (机器翻译)
try (final var executorService = Executors.newSingleThreadExecutor()) {
final var future = executorService.submit(() -> {
try {
System.out.println("task start");
TimeUnit.SECONDS.sleep(3);
return "abcd";
} catch (InterruptedException e) {
System.out.println("Interrupted!");
return null;
} finally {
System.out.println("task end");
}
});
TimeUnit.SECONDS.sleep(1);
try {
System.out.println("-- get start --");
final var ret = future.get(1, TimeUnit.SECONDS);
System.out.println("-- get end --");
System.out.println("ret = " + ret);
} catch (TimeoutException e) {
System.out.println("TimeoutException!");
}
}
// Result
// ↓
//task start
//-- get start --
//TimeoutException!
//task end
Constructors
TimeoutException ()
构造一个没有指定详细消息的 TimeoutException。 (机器翻译)
final var e = new TimeoutException();
System.out.println(e); // java.util.concurrent.TimeoutException
TimeoutException (String message)
使用指定的详细消息构造一个 TimeoutException。 (机器翻译)
final var e = new TimeoutException("abc");
System.out.println(e); // java.util.concurrent.TimeoutException: abc
System.out.println(e.getMessage()); // abc
Methods declared in Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
请参阅下面的链接。