AGB  ·  Datenschutz  ·  Impressum  







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

EAggregateException

Offene Frage von "dummzeuch"
Ein Thema von Der schöne Günther · begonnen am 1. Mai 2018 · letzter Beitrag vom 1. Mai 2018
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

EAggregateException

  Alt 1. Mai 2018, 10:18
Da keine Dokumentation zu System.Threading.EAggregateException existiert gehe ich einmal davon aus dass man sich an .NET's System.AggregateException orientiert hat und lese als Ersatz dessen Doku:

Zitat:
AggregateException is used to consolidate multiple failures into a single, throwable exception object. It is used extensively in the Task Parallel Library (TPL) and Parallel LINQ (PLINQ). For additional information, see the Aggregating Exceptions entry in the .NET Matters blog.
Meine Zwei Fragen:
  1. Auch wenn es in System.Threading steckt hat es nicht zwangsläufig mit Threads/Tasks zu tun. Ich "darf" es auch als Ergebnis von normaler, serieller Abarbeitung nehmen, richtig?
  2. Angenommen mehrere Durchgänge einer for-Schleife schlagen fehl und ich möchte das in Form einer EAggregateException nach oben hin kenntlich machen. Ist das im Folgenden so ok?

Delphi-Quellcode:
uses System.Threading;

procedure processData(const input: Integer);
begin
   if Odd(input) then
      raise EProgrammerNotFound.CreateFmt('Error while processing "%d"', [input]);
end;

procedure doStuff();
var
   exceptions: TArray<Exception>;
   i: Integer;
begin
   exceptions := [];
   for i := 0 to 5 do
      try
         processData(i);
      except
         exceptions := exceptions + [Exception(AcquireExceptionObject())];
         Continue;
      end;

   case Length(exceptions) of
      0: Exit;
      1: raise exceptions[0];
   else
      raise EAggregateException.Create('Calculations failed', exceptions);
   end;
end;

Geändert von Der schöne Günther ( 1. Mai 2018 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.604 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: EAggregateException

  Alt 1. Mai 2018, 10:54
Die "Doku" zu EAggregateException ist ja echt ziemlich peinlich. Vermutlich hat Embarcadero inzwischen vergessen, dass es die gar nicht gibt.

So, wie ich den Code verstehe, hast Du recht: Es spricht absolut nicths dagegen, sie so zu verwenden, wie in Deinem Beispiel. Man braucht dann natürlich auch einen sinnvollen Exception-Handler dafür.
Thomas Mueller
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 16:26 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