SWT: очистка перед выходом из приложения - PullRequest
2 голосов
/ 03 мая 2010

Каков наилучший способ для приложения SWT очистить ресурсы перед выходом из приложения? Я вижу два варианта:

1) Добавьте DisposeListener в главное окно (или лучше, в Display). Будет ли он запущен, если произойдет необработанное исключение?

2) Используйте отключающий крюк . Есть какие-то проблемы, о которых следует знать, которые не упомянуты в Дизайн API Shutdown Hooks ?

1 Ответ

1 голос
/ 04 мая 2010

В случае возникновения необработанного исключения вы можете получить исключение java.lang.RuntimeException: Widget disposed too early!:

Это обычно вызывается одним из других исключений, особенно при закрытии, и часто случаи, когда «предрасположены к ранним» ошибкам перечислены перед исключением, вызвавшим их. т.е.

  1. верстак закрывается
  2. одна часть выдает ошибку, которую невозможно поймать.
  3. все следующие части не закрыты, и поэтому генерируют эту ошибку
  4. ошибка, которая вызывает проблему, просачивается до самого верха стека и распечатывается.

В вашем случае я не уверен, как это повлияет на ваш прослушиватель, поэтому перехватчик может быть безопасным при условии, что он все еще может получить доступ к ресурсам для утилизации (что не всегда так).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...