I'm working with a try{} catch(){} exception right now and I want to change a Variable. For this my board has to connect to the Internet and with a try{} statement it will try to do so. If it fails I simply want to set the variables to 0.
try {
timeClient.update();
ntp_seconds = timeClient.getSeconds();
ntp_minutes = timeClient.getMinutes();
ntp_hours = timeClient.getHours();
}
catch () {
ntp_seconds = 0;
ntp_minutes = 0;
ntp_hours = 0;
}
I am getting this error: Compilation error: expected type-specifier before ')' token I know that I somehow have to pass my variables into the catch() "function" but somehow I can't pass variables in like I would with normal functions.
-
2This try/catch construct won't work with Arduino C++ : forum.arduino.cc/t/try-catch/1800636v6gt– 6v6gt2022年11月27日 09:57:36 +00:00Commented Nov 27, 2022 at 9:57
-
OK. There is little more to say so I'll present that as the answer.6v6gt– 6v6gt2022年11月27日 14:40:01 +00:00Commented Nov 27, 2022 at 14:40
-
Besides that, why do you think that the NTP client is going to throw an exception?romkey– romkey2022年11月27日 17:34:36 +00:00Commented Nov 27, 2022 at 17:34
2 Answers 2
You might want to refresh your knowledge about the try
-catch
statement by reading the respective chapter in your C++ book.
You need to declare an exception parameter in catch
, which you can ignore:
try {
timeClient.update();
ntp_seconds = timeClient.getSeconds();
ntp_minutes = timeClient.getMinutes();
ntp_hours = timeClient.getHours();
}
catch (exception& ignored) {
ntp_seconds = 0;
ntp_minutes = 0;
ntp_hours = 0;
}
The Arduino IDE does not support the C++ try/catch exception handling construct and explicitly disables this feature. See: https://forum.arduino.cc/t/try-catch/180063 for a fuller explanation.
-
how does IDE disable it? the build commands are in platform.txt of each platform. a forum post from 2013 is maybe outdated2022年11月27日 15:29:08 +00:00Commented Nov 27, 2022 at 15:29