2010-05-03 9 views
2

응용 프로그램을 종료하기 전에 SWT 응용 프로그램이 자원을 정리하는 가장 좋은 방법은 무엇입니까? 다음과 같은 두 가지 옵션이 있습니다.SWT : 응용 프로그램 종료 전에 정리하십시오.

1) DisposeListener를 기본 창 (또는 더 나은 곳인 Display)에 추가하십시오. 잡히지 않은 예외가 발생하면 실행됩니까?

2) shutdown hook을 사용하십시오. Design of the Shutdown Hooks API에 언급되지 않은 문제가 있습니까? 캐치되지 않는 예외가 발생할 경우

답변

1

, 당신은 java.lang.RuntimeException: Widget disposed too early! 예외로 끝날 수

이 보통 특히 가까이에, 다른 예외 중 하나에 의해 발생하고, 종종이 오류는 "조기 배치"입니다 그 (것)들을 일으키는 예외의 앞에 목록으로 만들어. 즉

  1. 작업대
  2. 일부 잡힐 수없는 오류를 슬로우하는 개폐된다.
  3. 다음과 같은 부분은 모두 닫히지 않으므로이 오류가 발생합니다.
  4. 문제가 발생한 원인이 스택의 맨 위로 이동하여 인쇄되는 오류입니다. 귀하의 경우에는

, 나는 여전히 항상 그런 것은하지 않을 수 있습니다 폐기하는 자원 (액세스 할 수 있습니다 제공, 너무 종료 훅은 안전 장치가 될 수도, 당신의 리스너에 영향을 미치는 방법을 잘 모르겠습니다).

+0

잘 알고 있습니다. 이 경우 나는 아마 내가 걱정하고있는 자원에 접근 할 수 있기 때문에 shutdown hook을 사용할 것이다. –

관련 문제