![]() |
Delphi-Version: XE7
Warum zeigt Application.ShowException(..) die INNERSTE?
Das macht doch irgendwie keinen Sinn. Folgendes Beispiel:
Delphi-Quellcode:
TApplication.ShowException(..) ist folgendermaßen definiert:
procedure TForm1.Button1Click(Sender: TObject);
resourcestring errorMsg = 'The calculation failed'; var divisor: Single; result: Single; begin divisor := 0.0; try result := System.Pi() / divisor; except Exception.RaiseOuterException( EProgrammerNotFound.Create(errorMsg) ); end; end;
Delphi-Quellcode:
Was macht das für einen Sinn dem Benutzer "Floating Point division by Zero" statt "The calculation failed" anzuzeigen? Das ist doch grade der Sinn von geschachtelten Exceptions, dass ich hier sagen kann, was allgemein falsch lief, und nicht welches spezielle Byte umgefallen ist.
procedure TApplication.ShowException(E: Exception);
var Msg: string; SubE: Exception; begin Msg := E.Message; while True do begin SubE := E.GetBaseException; if SubE <> E then begin E := SubE; if E.Message <> '' then Msg := E.Message; end else Break; end; [...] Erleuchtet mich. :wiejetzt: |
AW: Warum zeigt Application.ShowException(..) die INNERSTE?
Na, zumindest bist du nicht der erste, der sich wundert:
![]() Zitat:
|
AW: Warum zeigt Application.ShowException(..) die INNERSTE?
Danke für die seelische Bestätigung. Wenn man sich nicht alleine wundert, wundert man sich gleich viel weniger.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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