Fehlerbehandlung / Exception-Handling, AVR-GCC, ATmega32

Gast #1466775
Lesenswert?

Hallo!

Für die Ansteuerung eines GLCD möchte ich eine Funktion schreiben, die 
variable Argumente hat.
Bis dahin bin ich gekommen:
1
void message_center(char* string, uint8_t ver, ...)
2
{
3
  uint16_t fcolor, bcolor;
4

5
    va_list vlist;
6
    va_start (vlist, ver);
7

8
try 
9
{
10
  fcolor = va_arg (vlist, uint16_t); // wenn fcolor benutzt wurde und uint16_t ist, dann ist alles OK
11
}
12
catch( )
13
{    // ist fcolor fehlerhaft oder wurde nicht angegeben, dann Standardwert setzen
14
}   
15
    // Fehlerbehandlung von bcolor 
16
    bcolor = va_arg (vlist, uint16_t);
17

18
    va_end (vlist);
19

20
  // weiterer Code
21
  // Verarbeitung von fcolor und bcolor
22
}

Die Funktion soll folgendermaßen aufgerufen werden:
1
message_center(char* string, uint8_t ver, [uint16_t fcolor, [uint16_t bcolor]])

Mein Problem ist try und catch. Ich habe nur wenig Literatur gefunden. 
Welche Bibliothek muss ich einbinden, um try benutzen zu können?
Gibt es vielleicht eine einfachere Möglichkeit, um optionale Argumente 
zu verwenden?

Gruß
Guido
#1466832
Lesenswert?

Guido schrieb:

> Welche Bibliothek muss ich einbinden, um try benutzen zu können?

z.B. C++ oder Java ;-)

Es gibt sowas wohl auch für C, aber ich bin a bissl skeptisch ob man das 
auch auf Mikrocontrollern einsetzt, wegen des begrenzten Speichers. 
Obwohl, wenn ich mir das so auf die Schnelle ansehe scheint es recht 
klein zu sein, also vielleicht einfach mal ausprobieren.

Link:
http://www.nicemice.net/cexcept/

(unter "Similar projects" findet man weitere Links)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren