Das macht doch irgendwie keinen Sinn. Folgendes Beispiel:
Delphi-Quellcode:
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;
TApplication.ShowException(..) ist folgendermaßen definiert:
Delphi-Quellcode:
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;
[...]
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.
Erleuchtet mich.