AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Standard-Exceptions lokalisieren

Ein Thema von Der schöne Günther · begonnen am 25. Jun 2014 · letzter Beitrag vom 26. Jun 2014
 
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Standard-Exceptions lokalisieren

  Alt 25. Jun 2014, 21:02
Sorge doch einfach dafür, das keine Exception bis an die Oberfläche kommt.
Die Holzhammermethode ist, per TApplication.OnException einfach alle Exceptions abzufangen.
Die richtige (imho) Methode ist die, um jede Klasse bzw. System einen Exceptionwrapper zu legen.

Das bedeutet in PseudoCode:

Delphi-Quellcode:
Procedure TOuterClass.Method;
Var
  outerExceptionInfo : TOuterExceptionInfo;

Begin
  Try
    InnerClass.AnotherMethod();
  ...
  Except
    On E:EInnerException do begin
      outerExceptionInfo := HandleInnerException(E);
      raise EOuterException.Create(outerExceptionInfo);
// alternativ: AnotherMethod nochmals aufrufen (falls das Sinn macht)
    End;
    On E:Exception do
      raise EFatalException.Create(E);
  End
End;
D.h. Du verbirgst die inneren Exception, indem Du sie behandelst, also z.B. den Grund auflöst und nochmal probierst. Das geht nur manchmal, denn wenn z.B. das Kennwort falsch ist, ist es falsch, da wird man nichts machen können. Aber wenn ein Deadlock aufgetreten ist, kann man z.B. kurz warten und es dann nochmal probieren usw. Falls Du die Exception nicht auflösen kannst, dann kapselst Du die ziemlich wirren Aussagen (EIdConnectionAbortException, EFooBarBlaFasel usw) und verpasst dann der EOuterException anständige teutonisch-anglistische Haikus. Oder ähnlich Seriöses.

Ein wenig Aufwand, aber deinem Bestreben, ästhetisch ansprechende Software zu schreiben, durchaus zuträglich.
  Mit Zitat antworten Zitat
 


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 20:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz