Size: a a a

2020 November 27

VA

Viktor Akselrod in Delphi & Lazarus
источник

z

zamtmn in Delphi & Lazarus
теперь понятно
источник

z

zamtmn in Delphi & Lazarus
 LWorker := TSomeWorker.Create;
 try
   LWorker.Calculate(LData);
 finally
   FreeAndNil(LWorker)
 end;
источник

z

zamtmn in Delphi & Lazarus
так помоему лучше
источник

z

zamtmn in Delphi & Lazarus
а вообще входные данные и выходные обычно разные
источник

VA

Viktor Akselrod in Delphi & Lazarus
zamtmn
 LWorker := TSomeWorker.Create;
 try
   LWorker.Calculate(LData);
 finally
   FreeAndNil(LWorker)
 end;
мой пример надуманный и там может быть не один, а 10 методов и тд и тп
я хотел показать, что не всегда можно заменить класс на рекорд.
источник

z

zamtmn in Delphi & Lazarus
заменить можно всегда, но иногда это будет не оправдано
источник

VA

Viktor Akselrod in Delphi & Lazarus
бесспорно. речь ведь о здравом смысле, а не о невозможности в принципе
источник

z

zamtmn in Delphi & Lazarus
я также могу придумать пример где класс проиграет. здравый смысл определяется ситуацией
источник

VA

Viktor Akselrod in Delphi & Lazarus
ты так говоришь, как-будто я утверждаю "записи лучше классов" или наоборот.
здравый смысл совсем не про это 🙂
источник

z

zamtmn in Delphi & Lazarus
ок
источник

z

zamtmn in Delphi & Lazarus
подскажите как в голом фпц обработать исключения?
источник

z

zamtmn in Delphi & Lazarus
в гуй проге
источник

z

zamtmn in Delphi & Lazarus
FAppProps := TApplicationProperties.Create(Self);
 FAppProps.OnException := MyExceptionHandler;
 FAppProps.CaptureExceptions := True;
источник

z

zamtmn in Delphi & Lazarus
хочеися ловить исключения при инициализации модулей, до старта гуйни
источник

RS

Renat Suleymanov in Delphi & Lazarus
zamtmn
хочеися ловить исключения при инициализации модулей, до старта гуйни
Если ты о необработоанных ошибках. [Ведь ошибки желательно перехватывать на месте, там где они происходят. ] то есть системная процедурная переменная   ExceptProc
Присваиваешь ей обработчик типа procedure procedure (Obj: TObject; Addr: Pointer; FrameCount: Longint; Frames: PPointer); и вот ты перехватывашь все необработанные ошибки. И даже окошко не будет генерится в программе [кажется]
источник

RS

Renat Suleymanov in Delphi & Lazarus
zamtmn
хочеися ловить исключения при инициализации модулей, до старта гуйни
Ну и в секции инициализации модулей тоже ведь можно ставить ловушки try ... except ..end
источник

z

zamtmn in Delphi & Lazarus
да можно, но все непоймаешь, охота перед падением поматериться стеком и последним логом
источник

z

zamtmn in Delphi & Lazarus
вернее оно уже матерится, но после инициализации гуя. до гуя тоже много работы проходит
источник

z

zamtmn in Delphi & Lazarus
Renat Suleymanov
Если ты о необработоанных ошибках. [Ведь ошибки желательно перехватывать на месте, там где они происходят. ] то есть системная процедурная переменная   ExceptProc
Присваиваешь ей обработчик типа procedure procedure (Obj: TObject; Addr: Pointer; FrameCount: Longint; Frames: PPointer); и вот ты перехватывашь все необработанные ошибки. И даже окошко не будет генерится в программе [кажется]
спасибо!
источник