Leidiges Thema: Error Handling und Error Reporting
-
festbohrt? schrieb:
was bedeutet festbohrt?
Das ist ein genialer Neologismus. Er wurde heuer von Pattex in einem Werbespot verbreitet. Da mußt eine Dame etwas nicht "festbohren". Gemeint war natürlich Dübeln.
Ich mag das Wort. Es ist noch toller als "Ich stelle ein Schitzel in die Mikrowelle." Das ist ja nur richtig falsch. Aber festbohren ist so toll widersprüchlich.Vor wenigen Wochen gab es nur zwei google-Treffer zu "festbohren". Und schau, was heute schon los ist!
http://www.google.de/#hl=de&&sa=X&ei=5VRMTKLOL8SZOIuy9JUD&ved=0CCMQBSgA&q=festbohren&spell=1&fp=edb299ab19385cd9
-
festbohrt? schrieb:
schoolsout4ever schrieb:
was bedeutet festbohrt?
Man nimmt eine Handkreissäge, macht seitlich eine Schraube hin und hält das an die Wand und gibt Gas.
-
eher bohrt man solang in ein stahlträger bis der bohrer festschmiltzt das nennt sich dann auch festgebohrt
-
schoolsout4ever schrieb:
Man nimmt eine Handkreissäge, macht seitlich eine Schraube hin und hält das an die Wand und gibt Gas.
Das muß ich wohl gelten lassen.
Eigentlich wollte ich den Aufrufkontext klassisch festhalten in einem entsprechenden globalen Stack. Aber dann ist es mir gekommen, daß ich dafür nicht bezahlen muß, wenn ich wie folgt trickse:
Beim GCC für Exceptions angeblich keine Laufzeitkosten mehr sind, wenn sie nicht fliegen - außer mittelbar durch größere exe-Datei und so.#include <iostream> #include <cmath> #include <stdexcept> #include <sstream> #include <string> using namespace std; class funny_exception:public std::runtime_error{ public: string context; funny_exception(const char* msg): std::runtime_error(msg){ } ~funny_exception() throw(){ } }; double wurzel(double x) try{ if(x>100) throw funny_exception("Irgend ein Fehler ist aufgetreten"); return sqrt(x); } catch(funny_exception& ex){ ostringstream out; out<<"In "<<__FILE__<<':'<<__LINE__<<" wurzel("<<x<<')'<<'\n'; ex.context+=out.str(); throw; } double berechneHypotenuse(double a,double b) try{ return wurzel(a*a+b*b); } catch(funny_exception& ex){ ostringstream out; out<<"In "<<__FILE__<<':'<<__LINE__<<" berechneHypotenuse("<<a<<','<<b<<')'<<'\n'; ex.context+=out.str(); throw; } int main(){ try{ cout << berechneHypotenuse(3,101) << endl; } catch(funny_exception& ex){ cout<<ex.context; cout<<ex.what()<<'\n'; return 1; } }
Ausgabe:
In D:\src\research\exctest\main.cpp:26 wurzel(10210) In D:\src\research\exctest\main.cpp:37 berechneHypotenuse(3,101) Irgend ein Fehler ist aufgetreten
-
könnt ihr mich nicht mit c++ verschonen? jetzt hab ich mich extra in den ansi c bereich zurückgezogen und werde immernoch von euch belästigt. das gefällt mir nicht. dieser try/catch code von volkard übrigens auch nicht
-
ANSI_C_FORUM schrieb:
könnt ihr mich nicht mit c++ verschonen? jetzt hab ich mich extra in den ansi c bereich zurückgezogen und werde immernoch von euch belästigt. das gefällt mir nicht. dieser try/catch code von volkard übrigens auch nicht
std::cout<<"Gell, das macht Dich neidisch."<<std::endl;
-
puts("Gell, das macht Dich neidisch.");
-
Fast so gut wie meine Festbohrmaschine
-
ANSI_C_FORUM schrieb:
könnt ihr mich nicht mit c++ verschonen? jetzt hab ich mich extra in den ansi c bereich zurückgezogen und werde immernoch von euch belästigt. das gefällt mir nicht. dieser try/catch code von volkard übrigens auch nicht
Na ja, auch als ANSI-C-Programmierer kann man einzelne Dinge von C++ gut gebrauchen. Die Stream-Klassen zum Beispiel und einfache eigene Klassen statt der einfachen C-Structs auch. Das erfordert wenig Umdenken, kann die Programmierung aber deutlich erleichtern. :p
Was macht eine Festbohrmaschine zum Error Handling und Error Reporting? Bohrt die meinen Code auf mögliche Fehlersituationen auf? Da entsteht doch ein Loch und zermahlter Codestaub!
-
Das Wort "festbohren" kenne ich schon seit meiner Jugend. Scheint regional bedingt zu sein.
-
--- schrieb:
Das Wort "festbohren" kenne ich schon seit meiner Jugend. Scheint regional bedingt zu sein.
das klingt nicht jugendfrei
-
--- schrieb:
Das Wort "festbohren" kenne ich schon seit meiner Jugend. Scheint regional bedingt zu sein.
Wo ist das? Haben Frauen es Dir beigebracht?
-
Vor dem festbohren immer mir dem Messer nach messen.
-
Ich habe bisher gedacht, wir seien in einem seriösen Forum unterwegs!
Das Thema scheint jetzt "festgebohrt" zu sein. :p Das Bohrfutter schlupft! :p
-
Um zum Thema zurückzukehren, sei einfach mal folgendes Pamphlet empfohlen:
http://www.on-time.com/ddj0011.htm (Exception Handling in C without C++)
Damit bildet man selbst im ANSI C brauchbar try-catch-Blöcke ab.
Wenn das Programm multithreaded ist oder hinreichend komplex/verschachelt, sind auch die weiterführenden Überlegungen hier nicht zu verachten:
http://www.freetype.org/david/reliable-c.html
-