# on_error Component
## Description
The `on_error` component provides macros for handling errors and logging error messages in ESP32 applications.
## Installation
### Installation
To use the `on_error` component framework in your ESP-IDF project, follow these steps:
1. Clone or download the `on_error` repository.
2. Copy the `on_error` directory into your ESP-IDF project's `components` directory.
3. Configure the component in your `CMakeLists.txt` file.
OR
- Add dependencies to idf_component.yml in your project/main directory
```
dependencies:
ronny-antoon/on_error:
version: "^0.1.0"
```
## Usage
The `on_error` component provides the following macros:
- `ON_ERR_PRINT(esp_err, format, ...)`: Prints an error message if an ESP error occurs.
- `ON_ERR_PRINT_RETURN(esp_err, ret, format, ...)`: Prints an error message if an ESP error occurs and returns a value.
- `ON_NULL_PRINT(ptr, format, ...)`: Prints an error message if a pointer is null.
- `ON_NULL_PRINT_RETURN(ptr, ret, format, ...)`: Prints an error message if a pointer is null and returns a value.
### Example
```cpp
#include "on_error.hpp"
void example_function() {
esp_err_t err = some_function();
ON_ERR_PRINT_RETURN(err, ESP_FAIL, "Failed to perform some_function()");
SomeType* ptr = get_pointer();
ON_NULL_PRINT_RETURN(ptr, NULL, "Pointer is NULL");
// Continue with the rest of the function
}
```
## License
The `metric_tracker` component framework is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Links
- [GitHub Repository](https://github.com/ronny-antoon/on_error)
- [Espressif IDF Registry](https://components.espressif.com/components/ronny-antoon/on_error)
idf.py add-dependency "ronny-antoon/on_error^0.1.10"