Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: for..in erlaubt kein "raise" im Exception-Handler, for..to hingegen schon

  Alt 4. Jul 2018, 11:15
Fixed!

Delphi-Quellcode:
program Project5;

{$APPTYPE CONSOLE}

{$R *.res}


uses
  System.SysUtils,
  System.Threading;

procedure findNewProgrammer;
begin
  Writeln('Can not find anyone!');
end;

procedure p();
var
  ex: Exception;
begin
  try
    raise EProgrammerNotFound.Create('FooBar');
  except
    on E: EProgrammerNotFound do
    begin
      findNewProgrammer();
    end;

    on E: EAggregateException do
    begin
      for ex in E do
      begin
        if (not(ex is EProgrammerNotFound)) then
        begin
          raise ex; // Solved: E2145
        end;
      end;
      findNewProgrammer();
    end;
    else
      raise
  end;
end;

begin
  try
    p;
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
    begin
      Writeln(E.ClassName, ': ', E.Message);
    end;
  end;
  Readln;

end.
  Mit Zitat antworten Zitat