diff --git a/README.md b/README.md
index 14f6348..63cef01 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,41 @@ Conversely, the format, the information has after applying the rules of the next
### Stackprocessing
+### Error-handling
+The Errors of a device are managed by a Service-derived [```ErrorService```](lib/ErrorService/ErrorService.h). Every component (no matter, if Service, ServiceInterface or CommInterface) can be enabled to raise errors by deriving the [```ErrorState```](lib/ErrorService/ErrorState.h) and calling ```raiseError()```.
+```cpp
+class CommInterfaceBase: public ErrorState{
+ public:
+ CommInterfaceBase(): ErrorState(){};
+}
+```
+The class-instance is now able to raise Errors and, if applicable, to handle them within the class itself. E.g.:
+```cpp
+ // wait for Frame-timeout to ensure frame is complete, raise Error, if the silence-time is violated
+ if((_clearRxBuffer()>0) & (receiveBuffer->getSize()!=0)){
+ (numBytes>=MAXFRAMESIZE) ? raiseError(frameLengthError):raiseError(arbitrationError);
+ }
+
+ // handle the Arbitration-Error with waiting for bus-silence
+ if(getErrorState()==arbitrationError) while(_clearRxBuffer()!=0);
+```
+
+To handle the Error outside the instance, the Error-state of the components has to be processed within the [```ServiceInterface```](lib/Interface/ServiceInterface.h) by checking the ErrorState of the called instances and, if applicable raising the Error with the same Error-code within the ServiceInterface:
+
+```cpp
+errorCodes commInterfaceErrorState = comm_interface->getErrorState();
+if (commInterfaceErrorState!=noError) raiseError(commInterfaceErrorState);
+```
+
+Only Errors raised in [```ServiceInterface```](lib/Interface/ServiceInterface.h) are forwarded to an eventually registered [```ErrorService```](lib/ErrorService/ErrorService.h), that can execute error-code-specific actions (like printing the Error or broadcasting errors to the network).
+After handling the Error of the called instance, the ErrorState has to be cleared:
+```cpp
+comm_interface->clearErrorState();
+```
+
+The Error-codes are enumerated in the Content-derived [Error-class](lib/ErrorService/Error.h). To add new Error-cases, define a new Error-code in ```enum ErrorCodes``` and add an Error-message to the ```getErrorMessage(errorCodes code)```function within the [Error-class](lib/ErrorService/Error.h). The Error-Service will display those messages after an Error is either raised by another component on the local device or an Error-Frame was received.
+
+
## Deriving a custom Service
To derive a Layer-7-service, that can be used in combination with the predefined Layer-2-communication-interfaces, you have to
- [x] [define content to handle](#define-the-content)
diff --git a/docs/html/_error_8h.html b/docs/html/_error_8h.html
index 8a20be6..45328c6 100644
--- a/docs/html/_error_8h.html
+++ b/docs/html/_error_8h.html
@@ -162,6 +162,7 @@
,
serviceNotFound = '4'
, frameLengthError = '5'
+, overflow = '6'
, unknownError = 'X'
}
@@ -203,6 +204,8 @@
Maximum framelength violated.
Send- or Receivestack reached max. size of items.
+Unknown Error.