An sich ist es das ja auch. Aber man muss abwägen. Ich denke, ich muss dir nicht sagen, was ein try-except-Block für den Compiler, den resultierenden Sourcecode und nachher für die CPU bedeutet, die den Code ausführt.
Als erstes muss der Compiler sehr viel zusätzlichen Code erzeugen, dieser muss dann auch von der CPU abgearbeitet werden. Und wenn dann auch noch die
Exception auftritt, stelle ich es mir immer so vor, als ob die CPU am schimpfen ist, wie ein Rohrspatz, weil sie letztendlich den ganzen Stack absuchen muss, nach dem Punkt, wo sie weitermachen kann. Iregendwie so war das. Ich muss das im Richter nochmal nachlesen oder wo das stand.
Jedenfalls, wenn ich auch nicht genau weiß, wie
Exception umgesetzt werden, weiß ich, dass sie für die CPU unheimlich viel Arbeit, Taktzyklen usw. bedeuten und das der Compiler ein Haufen zusätzlichen Code generieren muss. Deswegen versuche ich try-except-Konstrukte zu vermeiden und nur da zu nutzen wo es nicht anders geht.
Mir stehen jedes mal die Haare zu Berge, wenn ich so was lese:
"Wie kann ich überprüfen, ob es sich um ein Integer handelt?"
Antwort:
Delphi-Quellcode:
try
i := IntToStr(Value);
result := True
except
result := False;
So und jetzt die Preisfrage an alle: Wie macht man es richtig bzw. eleganter ohne try-except-Block?