# Error handling

## Error types

If a formula evaluation cannot be performed, it returns an error. The following errors are defined in nedyx.

* **!CALCULATION** - an unexpected problem with a calculation occured.
* **!CONNECTION** - content from a database cannot be retrieved, because the connection to the database is not established.
* **!DIV0** - a value has been divided by 0 during an operation
* **!RECURSION** - during the calculation of a widget a circular reference is detected, i.e. the widget uses its own content for the calculation, directly or during the calculation of other depending widgets.
* **!REFERENCE** - a widget reference could not be resolved.
* !**SYNTAX** - the formula contains a syntax error.
* **!VALUE** - it was not able to process the value for an operation or a function.
* **!VALUETYPE** - it was not possible to convert a value to the value type which was required for an operation or a function.\
  Example: "A" \* 2 returns !VALUETYPE

## Error handling rules

* If a calculation uses a value of type error, it returns the same error as well. This helps to find the origin of an error.
* If more errors are encountered during an operation, the first evaluated error is returned.
* Errors are displayed in the same way as texts in cells, messages etc.
