Zitat von
QuickAndDirty:
Exceptions gibt es z.B. damit man auf so sachen wie
"Goto Error" verzichten kann.
Des weiteren wird ersparen Exceptions arbeit. Wenn du Z.B. Parameter hast die selbst Funktionen sind
Rechne(Inttostr(n),strtoint(s));
Ein fehler code macht das etwas unschön.
ja aber gerade dann weißt du nicht mehr wo der Fehler aufgetreten ist ... oder wie willst du jetzt z.B. dem Benutzer sagen welche der beiden Zahlen falsch war?
ich finde sowas sehr unschön:
Delphi-Quellcode:
try
//formular mit tausenden Werten abfragen
...
except
messagebox('hey du wichser ... irgendwo hast du was falsches eigegeben'#10
+ 'such mal schön danach und berichtige das gefälligst!');
end;
dann lieber ein/zwei Zeilen mehr Code, wo vorher die werte geprüft werden und wo man dem Benutzer nett sagt "Hey Schnucki, könntes du mal liebenswürdiger Weise den Wert "xyz" berichtigen?".
Zitat von
QuickAndDirty:
Wo ich wirklich zustimmen muss ist das das Debuggen mit Exceptions einfach nervt.
Würde mir Wünschen das man z.b. dem debugger sagen kann er solle nur eine code einer bestimmten
unit
debuggen....(Breakpoint auf alle Zeilen quasi)
schau mal in die debugger-Optionen ... einfach abschalten, was nervt.
mit {$D-} oder {$DEBUGINFO OFF} kannst du auch die Debugger-Informationen aus gewünschten Units entfernen, dann springt der debugger da auch nicht mehr hin.
wenn du z.B. 'nen dutzend Units hast und Alle bis auf Eine/Zwei funktionieren, dann in die anderen/funktionieren dieses rein und du kannst in Ruhe die Eine... debggen.
Zitat:
Exceptions gibt es z.B. damit man auf so sachen wie
"Goto Error" verzichten kann.
Eben nicht ... Exceptions = Ausnahmen
Die sind sozusagen der letzte Ausweg, wenn nichts mehr geht.
ich geb's zu ... hier schwirrt auch noch irgendwo ein Programm rum, wo ich absichtlich Exceptios zur Programmsteuerung geworfen hab (
Raise) ... aber für sowas würde dich eigentlich fast jeder Cheff feuern.
[ironie]
und hey, Exceptions kann man auch ganz geil als Rückgabwert mißbrauchen ... z.B. um etwas ohne Variable von einer ganz rekursiven und/oder tief verschachtelten stelle nach ganz weit oben zu übergeben und sofort direkt dahin zu springen
[\ironie]
[add]
zu StrToInt:
es gibt nicht umsonst sowas wie
StrToIntDef und
TryStrToInt