1

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.

3
  • 2
    This try/catch construct won't work with Arduino C++ : forum.arduino.cc/t/try-catch/180063
    – 6v6gt
    Nov 27, 2022 at 9:57
  • OK. There is little more to say so I'll present that as the answer.
    – 6v6gt
    Nov 27, 2022 at 14:40
  • Besides that, why do you think that the NTP client is going to throw an exception?
    – romkey
    Nov 27, 2022 at 17:34

2 Answers 2

1

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;
  }
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.

1
  • how does IDE disable it? the build commands are in platform.txt of each platform. a forum post from 2013 is maybe outdated
    – Juraj
    Nov 27, 2022 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.