Obsługa błędów

Pakiet SWT może generować wyjątki trzech typów: IllegalArgumentException, SWTException oraz SWTError. Wywołując pakiet SWT, aplikacje nie muszą przechwytywać żadnych wyjątków innego typu.

Uwaga: Jeśli pakiet SWT wygeneruje jakikolwiek wyjątek inny niż trzy powyższe, należy to uznać za efekt błędu programistycznego w implementacji pakietu SWT.

Wyzwalanie wyjątków w miarę możliwości następuje w sposób jednolity na wszystkich platformach. Niektóre błędy jednak mogą występować tylko w implementacjach SWT dla pewnych platform.

IllegalArgumentException

Argumenty przekazywane w wywołaniach metod API SWT są sprawdzane pod kątem prawidłowego stanu i zakresu przed podjęciem innych działań. Wyjątek IllegalArgumentException zostanie wygenerowany w przypadku stwierdzenia, że przekazany argument nie spełnia wymagań formalnych.

Kod powodujący wygenerowanie wyjątku IllegalArgumentException na jednej platformie wygeneruje go także na każdej innej.

SWTException

Wyjątek SWTException jest generowany na skutek wystąpienia w SWT wewnętrznego błędu, który jest możliwy do naprawienia. Dalszą charakterystykę problemu przekazują kod błędu i tekst komunikatu.

Po wystąpieniu tego wyjątku pakiet SWT pozostaje w znanym i stabilnym stanie. Wyjątek tego typu jest generowany na przykład w wyniku wywołania pakietu SWT z wątku niezwiązanego z interfejsem użytkownika.

SWTError

Wyjątek SWTError jest generowany, gdy wewnątrz pakietu SWT wystąpi niemożliwy do naprawienia błąd.

Pakiet SWT generuje ten błąd, gdy odpowiednie wywołanie platformy nie powiedzie się, pozostawiając pakiet SWT w nieznanym stanie, lub gdy pakiet SWT znajdzie się w stanie błędu niemożliwego do naprawienia, na przykład po wyczerpaniu się zasobów graficznych platformy.

Po wystąpieniu błędu SWT aplikacja w zasadzie nie ma możliwości jego skorygowania. Błędy tego typu nie powinny występować w trakcie normalnego działania aplikacji, jednak aplikacje, od których wymaga się wysokiego poziomu niezawodności, powinny mimo wszystko przechwytywać te błędy i je zgłaszać.