...
The best way to handle exceptions at the application level is to use an exception handler. The handler can perform diagnostic actions, clean-up and shutdown shut down the JVM, or simply log the details of the failure.
...
| Code Block | ||
|---|---|---|
| ||
final class PoolService {
// The values have been hardcodedhard-coded for brevity
ExecutorService pool = new CustomThreadPoolExecutor(10, 10, 10, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(10));
// ...
}
class CustomThreadPoolExecutor extends ThreadPoolExecutor {
// ... Constructor ...
@Override
public void afterExecute(Runnable r, Throwable t) {
super.afterExecute(r, t);
if (t != null) {
// Exception occurred, forward to handler
}
// ... Perform task-specific clean-up actions
}
@Override
public void terminated() {
super.terminated();
// ... Perform final clean-up actions
}
}
|
...