Entwickler-Ecke
Sonstiges (Delphi) - Exception Trotz Try Except
Herr Bananerama - Fr 21.12.07 19:45
Titel: Exception Trotz Try Except
Hallo allerseits,
ich muss euch mal wieder mit meinen Fragen nerven ^^ denn ich hab einen für mich total unlogischen Fehler gefunden.
Die Folgende ist eine Prozedur zum errechnen der Nullstellen bei einer Exponentialfunktion. Fa, Fb und Fc sind alle Doubles und in diesem Falle ist Fc 0. Also kommt eine Exception wegen der Division durch null. Aber was ich nicht verstehe ist: ich habe doch try except gemacht!!! Dann müsste doch bei der Exception einfach nur das Except ausgelöst werden. Die Exception trifft auf jeden Fall Bei Folgendem ein, da ich es mit F7 verfolgt habe
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TExF.NS(Var X1: Double; Var Code: Byte); begin try X1 := LogN(Fb,(-Fc/Fa)); Code := 0 except X1 := 0; Code := 1 end end; |
Danke schon mal im voraus
Herr Bananerama - Fr 21.12.07 19:56
Sorry hab den Fehler schon behoben. Die Exception Tritt nicht in der Procedure auf sonder in der von LogN. Ich konnte das nur nicht sehen aber wenn ich drüber nachdenke ist es total logisch
die Frage ist hiermit zurückgezogen.
Wolle92 - Fr 21.12.07 19:56
Trotzdem:
Der
try-
except-Block muss so aufgebaut sein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure Irgendwas(irgendwas: String); begin try Irgendwas - 0; except on Exception do ShowMessage('Es ist ein Fehler aufgetreten!'); end; end; |
Das ist jetzt der grobe Aufbau, du kannst das Exception noch genauer beschreiben, zum Beispiel EDivideByZero (war das glaub ich) oder EConvertError oder sonstwas, was man im entsprechenden Fall eben braucht...
Man kann auch mehrere Befehle in das
on Exception do packen, dann braucht man aber begin und end...
du kannst auch mehrere Arten von Exceptions behanden...
dummzeuch - Fr 21.12.07 20:52
Wolle92 hat folgendes geschrieben: |
Trotzdem:
Der try-except-Block muss so aufgebaut sein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure Irgendwas(irgendwas: String); begin try Irgendwas - 0; except on Exception do ShowMessage('Es ist ein Fehler aufgetreten!'); end; end; |
|
Delphi-Quelltext
1: 2: 3: 4: 5:
| try befehle; except behandlung; end; |
ist durchaus OK, wenn einen der Exception-Typ nicht interessiert, man muss nicht notwendigerweise mit
on exceptiontyp do arbeiten. Allerdings kommt das nur selten vor, denn meistens sollte man sich dafuer interessieren, was schiefgelaufen ist, sonst maskiert man mit einer erwarteten Exception evtl. eine unerwartete. Deshalb sollte ein Exception-Handler immer so spezifisch sein wie moeglich.
twm
Wolle92 - Fr 21.12.07 21:03
das wollte ich mit dem text darunter ausdrücken
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!