I am working with socket communication in Arduino, and I need the try/catch block for proper handling, what do you guys suggest? My search on the internet wasn't successful.
edit:
The code I am working with uses the WiFly module to interact with a mobile application, I am building a robot module with some controls over mobile application using Android. Everything works just fine, but sometimes the socket gets disconnected, so I need to add handling for such cases, something similar to try/catch block, but I didn't find similar block for Arduino.
My code:
void loop() {
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
// Serial.print("client connected \n");
char c = client.read();
if(c == 'L')
turnLeft();
if(c == 'R')
turnRight();
if(c == 'F')
goForward();
if(c == 'B')
goBackward();
if(c == 'S')
Stop();
Serial.print(c);
}
}
// give the web browser time to receive the data
delay(100);
client.stop();
}
}
The Arduino reference is not listing try catch
(for details of why see, for example, this related answer). And I assume, that implementing try catch on a µ-controller could be kind of difficult/impossible.
Try catch in most languages is a quite expensive operation: The program stack get copied once for the try block and for each catch block. In case the try goes wrong the try-block stack will be discarded and one of the catch block stacks will be executed.
I am not an expert of cpu architecture, but I can imagine, that this needs a lot of memory swapping and similar operations — it should be hard to achieve with a simple µ-controller.
It might worth to look how C-Programmers do patterns similar to try/catch