Как вы, возможно, знаете, стандартный основной цикл SWT выглядит так:
Display display = new Display();
Shell shell = new Shell(display);
...
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
Недавно я поспорил с коллегой о том, имеет ли смысл заключать основной цикл в try-catch, например:
Display display = new Display();
Shell shell = new Shell(display);
...
shell.open();
while (!shell.isDisposed()) {
try {
if (!display.readAndDispatch()) {
display.sleep();
}
} catch (RuntimeException e) {
// TODO Implement exception handler
}
}
display.dispose();
Мой коллега говорит, что, делая это таким образом, вам не нужно будет немедленно закрывать приложение, если происходит сбой в потоке графического интерфейса, поэтому у пользователя может быть возможность сохранить свои данные перед закрытием программы.
Итак, что ты думаешь? Есть ли смысл делать такие вещи?