Forum: Compiler & IDEs Fehlerbehandlung / Exception-Handling, AVR-GCC, ATmega32


von Guido (Gast)


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

von Mark B. (markbrandis)


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)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.