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.

sempaiscuba
  • 1,042
  • 9
  • 21
  • 32
LMJ
  • 29
  • 5

2 Answers2

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;
  }
the busybee
  • 2,408
  • 9
  • 18
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.

6v6gt
  • 1,192
  • 6
  • 8