Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Exception richtig auffangen (https://www.delphipraxis.net/30961-exception-richtig-auffangen.html)

Gambit 1. Okt 2004 19:28


Exception richtig auffangen
 
Hallo,

ich connecte zu einem MySQL-Server. Wenn die Verbindung nicht hergestellt werden kann, wird in einer Klasse der Zeos-Komponenten eine Exception ausgelöst. Hier mal der Auszug aus der Unit wo der Debugger stoppt und mir eine EZSQLException mitteilt:

Delphi-Quellcode:
procedure CheckMySQLError(PlainDriver: IZMySQLPlainDriver;
  Handle: PZMySQLConnect; LogCategory: TZLoggingCategory; LogMessage: string);
var
  ErrorMessage: string;
  ErrorCode: Integer;
begin
  ErrorMessage := Trim(StrPas(PlainDriver.GetLastError(Handle)));
  ErrorCode := PlainDriver.GetLastErrorCode(Handle);
  if (ErrorCode <> 0) and (ErrorMessage <> '') then
  begin
    DriverManager.LogError(LogCategory, PlainDriver.GetProtocol, LogMessage,
      ErrorCode, ErrorMessage);
    raise EZSQLException.CreateWithCode(ErrorCode, <------------------da die Exception
      Format(SSQLError1, [ErrorMessage]));
  end;
end;
Ich will nun diese Exception abfangen in meinem Code:

Delphi-Quellcode:
Try
  ConnectSQLServer;
Except
  on EZSQLException do begin
    MessageDlg(blahblah);
    exit;
  end;
end;
nun funzt das aber nicht, ich scheine in den Except Block gar nicht reinzukommen. Schalte ich die Sprachexceptions im Debugger ab, werden irgendwann die Routinen in der Prozedur nach dem Try-Except Block ausgeführt.
Wie kommt denn das oder was mache ich falsch?

Gruß

Gambit

fiasko 1. Okt 2004 22:02

Re: Exception richtig auffangen
 
Wenn du das ganze von der IDE aus startest, unterbricht der Debugger standardmäßg immer wenn eine Exception auftritt (außer wenn wie du schon gesagt hast man das abschaltet).

Vielleicht fängst du die Exception an einer falschen Stelle ab oder da wird ne andere draus (*zeos-noch-nie-benutzt-hab*).


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz