Я использую SwingWorker в Java 6, чтобы избежать запуска долгого кода в потоке отправки событий.
Если вызов метода get() в моем методе done() возвращает исключение, что является подходящим способом обработки исключения?
Я особенно обеспокоен возможными InterruptedExceptions. Пример JavaDoc просто игнорирует исключение, но с годами я узнал, что проглатывание исключений приводит к жесткому отлаживанию кода.
Пример использования шаблона выглядит следующим образом:
new SwingWorker<String, Void>() {
@Override
protected String doInBackground() throws Exception {
// do long-running calculation
return result;
}
@Override
protected void done() {
try {
setTextField(get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}.execute();