AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Exceptions behandeln... Ich glaun ich bin zu plöd....
Thema durchsuchen
Ansicht
Themen-Optionen

Exceptions behandeln... Ich glaun ich bin zu plöd....

Ein Thema von Kedariodakon · begonnen am 21. Sep 2004 · letzter Beitrag vom 22. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#1

Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 18:49
Erst mal folgender Code:
Delphi-Quellcode:
...
procedure TForm1.TButton_ConnectClick(Sender: TObject);
  procedure Error(Error:EOleException);
  begin
      LException.Caption := 'EOleException';
      //LHelpFile.Caption := Error.HelpFile;
      //LSource.Caption := Error.Source;
      //LErrorCode.Caption := Error.ErrorCode;
      //LHelpContext.Caption := Error.HelpContext;
      //LMessage.Caption := Error.Message;
  end;
begin
  TButton_Connect.Enabled := False;
  TButton_Disconnect.Enabled := False;
  try
    SetConnectionString(TADOConnection_SQL);
    TADOConnection_SQL.Open;
  except
    on EOleException do ERROR(EOleException);
    TButton_Connect.Enabled := True;
    TButton_Disconnect.Enabled := False;
  end;
end;
...
Was soll das machen fragt sich bestimmt jeder

Es gibt ja ab und zu lustige Exceptions (da der Anwender zu plöd ist, oder der Programmierer zu plöd war), welche mit ner WindowsTypischen MessageBox quittiert werden

So ich bekomm das ja hin das keine Box erscheind, was ich ja net wirklich will

Wenn ich mir EOleException anschau, hat es Eigenschaften wie HelpFile, Source, ErrorCode, HelpContext und Message...

Wie komm ich an derren Inhalt ran, wenn solch eine Exception ausgelöst wird? So wie ich es gemacht hab scheinbar net, da kommt immer [Fehler] MainUnit.pas(95): Inkompatible Typen: 'EOleException' und 'Class reference'

Auch wenn ich die Eigenschaften im EceptBlock abfrag bekomm ich nur Fehler...

Hat da wer nen Tip? Irgendwas wie ich an die Werte rannkomm?
Dann wie sieht es mit meiner declarierten Procedure in der procedure aus? ist sowas verboten? funktionieren wird es wohl, meckert ja net rum ^^

MFG Keda
Christian
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#2

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 18:51
hi,

du musst dir eine variable definieren

Delphi-Quellcode:
try
...
except
  on e: EOleException do begin
  // hier kannst du jetzt was mit e machen..
  end;
end;
Gruß
Ken
Ein Objekt ist eine zur Ausführungszeit vorhandene für seine Instanzvariablen Speicherplatz allokierende Instanz, die sich gemäß dem Protokoll ihrer Klasse verhält.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 19:04
Zitat von CenBells:
hi,

du musst dir eine variable definieren

Delphi-Quellcode:
try
...
except
  on e: EOleException do begin
  // hier kannst du jetzt was mit e machen..
  end;
end;
Gruß
Ken
Danke das mit E hat soweit funktioniert...
Aber ein Prob hab ich immer noch:


Hier nochmal der Code mit dem E-Prinzip erweitert:
Delphi-Quellcode:
procedure TForm1.TButton_ConnectClick(Sender: TObject);

  procedure GetError(Error:EOleException);
  begin
      LException.Caption := 'EOleException';
      LHelpFile.Caption := Error.HelpFile;
      LSource.Caption := Error.Source;
      //LErrorCode.Caption := Error.ErrorCode;
      LHelpContext.Caption := IntToStr(Error.HelpContext);
      LMessage.Caption := Error.Message;
  end;

begin
  TButton_Connect.Enabled := False;
  TButton_Disconnect.Enabled := False;
  try
    SetConnectionString(TADOConnection_SQL);
    TADOConnection_SQL.Open;
  except
    on Error:EOleException do GetError(Error);
    {*
    on Error:EOleException do begin
      GetError(Error);
    end
    Else begin
    end;
    *}

    TButton_Connect.Enabled := True;
    TButton_Disconnect.Enabled := False;
  end;
end;
Warum geht:
on Error:EOleException do GetError(Error); Nicht?
Warum muß es:
Delphi-Quellcode:
    on Error:EOleException do begin
      GetError(Error);
    end
    Else begin
    end;
Sein damit es geht? Kapier ich nicht

MFG Keda
Christian
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#4

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 19:07
Sobald du mit on anfängst, sagst du Delphi, dass du mehrere Exceptions behandeln willst. Tust du dies nicht, führt Delphi den Code aus und bricht dann ab. Wenn du beides koppeln willst, kannst folgendes machen:
Delphi-Quellcode:
except
 on E:Exception do begin
  if E.ClassNameIs('EOleException') then begin
   {...}
  end;
  {...}
 end;
end;
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 19:13
bevor ich das E: hingemacht hatte hats aber funktioniert

Aber das was du da grad als Beispiel gegeben hast sieht interessant aus, damit werd ich mal nen bisle Rumspielen


EDIT:
Sind dann in E auch die EOleException Eigenschaften vorhanden? sind doch nur die Eigenschaften von Exception oder?
Wie komm ich so noch an die EOleException Eigenschaften?


MFG Keda
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 20:10
genauso:

on E:EOleException do begin
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 20:55
Das is schon klar, meinte aus dem normalen e:Exception...

Aber das geht net, glaub ich ^^


MFG Lucky
Christian
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 21. Sep 2004, 21:49
Moin!

Delphi-Quellcode:
If ( E Is EOLEException ) Then
  EOLEException(E).Eigenschaft // bzw. ( E As EOLEException ).Eigenchaft
Die Exceptions sind nix anderes als Klasseninstanzen abgeleitet von Exception (welche von TObject abgeleitet wurde). Diese sind ohne Probleme Cast-bar. Auch ist ExceptObject innerhalb eines Try/Finally und Try/Except Blockes gültig und gefüllt mit der Exception Instanz. Das On E: Exception Do macht nix anderes als eine Klassenabfrage und einen TypeCast mit ExceptObject zu machen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 22. Sep 2004, 14:07
Das werd ich gleich mal testen danke
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Exceptions behandeln... Ich glaun ich bin zu plöd....

  Alt 22. Sep 2004, 14:25
Hi,


grad mal ne Frage. Warum heißt es immer

on E: {blubb} do ? Kann es auch

on x: {Blubb} do heißen?

Hab grad kein Delphi zur Hand, sonst könnte ich es testen^^.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 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