Einzelnen Beitrag anzeigen

stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#9

AW: NAN Error nach Windows Update

  Alt 30. Okt 2019, 16:09
Ok das Problem ist relativ simpel, hat aber definitiv was mit dem neuesten Windows Update ( scheinbar für alle Windows Versionen ) zu tun.

Und zwar ist nach einem .navigate auf der TWebBrowser danach das Exception Handling im Eimer.
Das passiert sogar mit alten Windows/IE Versionen, wenn auf der Seite ein Fehler auftritt. 403, Script Error usw.
Aber mit den neuen gepatchten Windows Versionen reicht ein about:blank

Code:
procedure TForm1.Button1Click(Sender: TObject);
var a,b: real;
begin

    webbrowser.Navigate('about:blank');
 // webbrowser.Navigate('http://www.google.de');
    try
            a:= 100;
            b:= 100;
            a:= a / (100 - b);
            showmessage(format('<%.2f> <%.2f>',[a,b]));
    except
        // a := 0;
        // on e:EZeroDivide do showmessage('EZeroDevide');
        on E : Exception do
            ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
    end;
end;
Resultat ist keine Exception und in A steht INF.
In ein paar anderen Konstellationen kann auch NAN drin stehen.

Edit : System.Set8087CW(Default8087CW); nach .navigate aktiviert das Handling wieder.

Edit2 : 100% kann man sich auf das Set doch nicht verlassen und letztendlich ist das Problem auch das sich einige bei uns das Leben einfach gemacht haben und mit try/except eine Div durch 0 abzufangen Die sauberste Variante ist natürlich das abfangen ob durch 0 dividiert wird.

Geändert von stalkingwolf (30. Okt 2019 um 16:30 Uhr)
  Mit Zitat antworten Zitat