title image


Smiley Re: Fehlerbehandlung im Except-Block: Wie..?
hi Mathias,

Ich mach das zB so: (ist allerdings aus Akt. Prog kopiert)





resourcestring

sNotTVFileFound = 'Die Baumdatei ''%s'' konnte nicht gefunden werden!';

sNotCompatible = 'Das Format der Datei ''%s'' ist nicht kompatibel.';

sFileError = 'Die Datei ''%s'' kann nicht identifiziert werden.';

 

type // ------------ Fehlerbehandllung -(eigene Exceptions )------------------



ENoTVFile = class( EInOutError );

ENotTVFileFoundFMT_s = class( EInOutError );

ENotCompatibleFMT_s = class( EInOutError );

 

 

procedure xxxxxxxxxxxxxx

{...}

with ms do try //ms : TMemoryStream

ms.LoadFromFile( s );

case Kennung( ktTV, ms ) of {*** kennung abfragen ***}

knOldVersionNo : if (MessageDlg(' Es wurde eine ältere Dateiversion gefunden.'+#13+#10+

'Soll diese nun in die aktuelle Version konvertiert werden?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes) then VersionConvert( ms );

knNotCompatible : raise ENotCompatibleFMT_s.CreateResFmt( @sNotCompatible, [s]);

knError : raise EInOutError.CreateResFmt( @sFileError,[s] );

end;

{*** Kennung iO also weiter auslesen ***}

with ms do begin

read(le64, sizeOf(le64));

NodesStream.CopyFrom( ms, le64 ); {*** Nodes ***}

ObjStream.CopyFrom( ms, (ms.Size - ms.Position)); {*** Obj ***}

end;

finally

ms.Free;

end;

result := true;

end;

except

on E:Exception do

begin MessageDlg( E.Message+' ( in Proc:LoadTV)' , mtError, [mbOK], 0);

result := false;

end;

end;



tritt nun innerhalb des try Blocks ein Fehler auf, so erstelle ich mit raise

dei Meldung (Create(Fmt)). danach wandert das Prog in den Exceptionblock und

zeigt die Meldung im MessageDialog an. Es werden auch ncht bekannte Fehler

angezeigt, also auch welche mit denen Du garnicht rechnest, allerdings wird

dann nur der Delphi-interne Meldestring angezeigt.



Ich hoffe es reicht als Beispiel,



Gruss Uwe

Achte auf deine Gedanken - Sie sind der Anfang deiner Taten.   (Chinesisches Sprichwort )



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: