O
Hui, danke
Gumble schrieb:
Gibts nicht eine globale Variable, in der z.B. die Funktion gespeichert wird, die die Exception geworfen hat? Die könnte man dann im Handler verarbeiten, sprich ausgeben.
Du könntest dir ein Exception-Werfen-Makro schreiben, dass an den übergebenen String noch gleich die Zeile (__LINE__) und die Funktion (__FUNCTION__, ist aber nicht standardisiert) anhängt. Wenn du aber nur einen Weg brauchst, eigene Logikfehler zu finden und unfreundlich darauf hingewiesen zu werden, ist das Standard-assert() aus <cassert> vielleicht geeigneter als der Ausnahmemechanismus.
Mit Container/Templates/Vektoren hab ich bisher noch nicht gearbeitet - meinst Du ich soll die "Daten" der Matrix in so ein Ding stopfen? Will doch aber meine eigenen Complex-Klasse dazu verwenden!
Dafür ist std::vector ja ein Template std::vector<Complex> wäre hier z.B. naheliegend als Containertyp für die Matrix.
ok, dann muss ich halt mehrmals catchen - für jeden Fehler einmal, oder?
Was willst du denn beim Catchen machen? Viele catch-Blöcke braucht man eigentlich selten. Wenn es nur ums Ausgeben geht, reicht doch:
catch (const std::exception& e)
{
std::cout << e.what() << std::endl;
}
(verwende ich so in etwa jedenfalls)
Das fängt dann alle von std::exception abgeleiteten Klassen, was praktischer Weise alle Standardausnahmen sind. Den Klassennamen der Exception kann man leider nicht portabel ausgeben.
So, und jetzt ist auch hier Schicht...