1 2 // Copyright 2018 Espressif Systems (Shanghai) PTE LTD 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 #ifndef _ESP_EXCEPTION_H_ 16 #define _ESP_EXCEPTION_H_ 17 18 // 19 // This exception stub is enabled only if exceptions are disabled in menuconfig 20 // 21 #if !defined(CONFIG_COMPILER_CXX_EXCEPTIONS) && defined (ASIO_NO_EXCEPTIONS) 22 23 #include "esp_log.h" 24 25 // 26 // asio exception stub 27 // 28 namespace asio { 29 namespace detail { 30 template <typename Exception> throw_exception(const Exception & e)31void throw_exception(const Exception& e) 32 { 33 ESP_LOGE("esp32_asio_exception", "Caught exception: %s!", e.what()); 34 abort(); 35 } 36 }} 37 #endif // CONFIG_COMPILER_CXX_EXCEPTIONS==1 && defined (ASIO_NO_EXCEPTIONS) 38 39 #endif // _ESP_EXCEPTION_H_ 40