SWT tiene una estrategia bien definida para desencadenar errores y excepciones. Siempre que es posible, las excepciones se desencadenan de manera coherente en las distintas plataformas. Sin embargo, algunos errores son específicos de una implementación de SWT en una plataforma concreta.
SWT puede desencadenar tres tipos de excepciones: IllegalArgumentException, SWTException y SWTError. Las aplicaciones no deben tener que capturar ningún otro tipo de excepción o error al llamar a SWT.
Nota: si se lanza cualquier otra excepción, aparte de estas tres, desde SWT, hay que interpretarlo como error de la implementación de SWT.
Antes de que se efectúe ninguna otra tarea, se comprueba que es adecuado el estado y el rango de los argumentos pasados en los métodos de la API de SWT. Cuando se determina que un argumento no es válido, se lanza IllegalArgumentException.
SWT lanza esta excepción de manera coherente en todas las plataformas. El código que provoca una excepción IllegalArgumentException en una plataforma provocará la misma excepción en una plataforma distinta.
Cuando se produce un error recuperable interno en SWT, se lanza SWTException. El código de error y el texto del mensaje describen el problema de manera más detallada.
SWT lanza esta excepción de manera coherente en todas las plataformas. En todas ellas, SWT permanece en un estado estable conocido después de que se lance la excepción. Por ejemplo, se lanza esta excepción cuando se efectúa una llamada de SWT desde una hebra que no es de la UI.
Cuando se produce un error irrecuperable dentro de SWT, se lanza SWTError.
SWT lanzará este error cuando falle una llamada a la plataforma subyacente, dejando a SWT en un estado desconocido, o cuando se detecte que SWT tiene un error irrecuperable, como el de quedarse sin recursos gráficos de la plataforma.
En cuanto se produce un error de SWT, es muy poco lo que una aplicación puede hacer para corregir el problema. Estos errores no deben producirse durante el curso normal de la operación de una aplicación; sin embargo, las aplicaciones de alta fiabilidad deben poder capturarlos e informar de ellos.