« return to the patterns overview
Error Handling Patterns
Any LaxarJS widget or activity that communicates with the outside world can experience an error condition. This can be a an HTTP server that is not reachable anymore, failing to open a WebSocket connection, or an unexpected privilege restriction imposed by the web browser.
The didEncounterError Event
Widgets may use the didEncounterError
event to inform about problems from which they cannot recover.
This allows for some other dedicated widget or activity to take an appropriate measure, for example by displaying a message to the user or by informing a REST service dedicated to monitoring or logging.
No topic configuration is needed for this event, as it is assumed that only a small number of activities or widgets are responsible for handling all types of errors.
The didEncounterError
event is not intended to handle programming errors, such as null-pointer errors, which should be eliminated during testing.
Also, it is not intended to inform about invalid user input:
Have a look at resource validation events instead.
Event name | Payload Attribute | Type | Description |
---|---|---|---|
didEncounterError.{code} |
published by any widget to indicate an unrecoverable error | ||
code |
string | HTTP_GET or HTTP_PUT (if applicable) |
|
message |
string | a more precise description of the problem | |
data |
object | additional details, specific to the problem |
The code
values stand representative for any read and write, or (I/O) problems.
If necessary, a sub-topic can be added, for example HTTP_PUT-WEB_SOCKET
.
The message
and data
attributes should contain additional information.