OVMS3-idf/examples/system/cpp_exceptions
2019-05-21 09:09:01 +02:00
..
main cmake: make main a component again 2018-09-11 09:44:12 +08:00
CMakeLists.txt asio: examples renamed to have consistent binary names when build in make and CMake 2018-10-17 15:00:26 +02:00
example_test.py examples: Fix Python coding style 2018-12-06 09:34:33 +01:00
Makefile examples: add C++ exception handling example 2018-09-04 21:00:14 +08:00
README.md Rename Kconfig options (root) 2019-05-21 09:09:01 +02:00
sdkconfig.defaults Rename Kconfig options (root) 2019-05-21 09:09:01 +02:00

Example: C++ exception handling

(See the README.md file in the upper level 'examples' directory for more information about examples.)

This example demonstrates usage of C++ exceptions in ESP-IDF.

By default, C++ exceptions support is disabled in ESP-IDF. It can be enabled using CONFIG_COMPILER_CXX_EXCEPTIONS configuration option.

In this example, sdkconfig.defaults file sets CONFIG_COMPILER_CXX_EXCEPTIONS option. This enables both compile time support (-fexceptions compiler flag) and run-time support for C++ exception handling.

Example source code declares a class which can throw exception from the constructor, depending on the argument. It illustrates that exceptions can be thrown and caught using standard C++ facilities.

How to use example

Configure the project

Run make menuconfig and set serial port under Serial Flasher Options.

Build and Flash

Build the project and flash it to the board, then run monitor tool to view serial output:

make -j4 flash monitor

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Example Output

app_main starting
In constructor, arg=42
In constructor, arg=0
In destructor, m_arg=42
Exception caught: Exception in constructor
app_main done