Fehlerbehandlung / Exception-Handling, AVR-GCC, ATmega32

Gast #1466775
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.