I'm using a port of the STL foundhere and trying to debug with a simpletry{...}catch{...} statement. When compiling with the Arduino IDE, I get the following error message:
exception handling disabled, use -fexceptions to enable.
I'm not quite sure what this means. Does the Arduino simply not support exceptions? Or is-fexceptions a compiler flag I can enable?
- It's just disabled and if you want to use it, you have to provide
-fexceptionsflag to the compiler.KIIV– KIIV2019-05-14 12:07:49 +00:00CommentedMay 14, 2019 at 12:07
2 Answers2
As you have already found out, add-fexceptions to the compiler flags. This can be done by modifying theplatform.txt of your Arduino IDE installation.
Seehttps://github.com/arduino/ArduinoCore-avr/blob/master/platform.txt#L28. There is-fno-exceptions defined, so you have to remove that, too.
- Perfect, this is the (complete) answer I was looking for.Snail Cadet– Snail Cadet2019-05-14 13:02:54 +00:00CommentedMay 14, 2019 at 13:02
Arduino is a very limited platform, and handling exceptions requires quite a bit of hidden code to properly unwind the stack wherever the exception occurs.
So the default is to turn it off and teach users to not use exceptions in arduino and instead other type of error handling.
- 1The default is not to use STL neither.DataFiddler– DataFiddler2019-05-14 13:38:17 +00:00CommentedMay 14, 2019 at 13:38
- It's not just the default; Arduino has no built-in support for the STL.Snail Cadet– Snail Cadet2019-05-14 13:52:09 +00:00CommentedMay 14, 2019 at 13:52
Explore related questions
See similar questions with these tags.