Javascript - - - ieblog magyar

hibakeresés alkalmazások

Tekintsünk egy egyszerű példaprogram kiszámításához két pont közötti távolság - (0, 2) és (12, 10):

dobja új hiba ( „Nem lehet, hogy négyzetgyök negatív szám.”);

Ez a script hibát tartalmaz - nem négyzetes különbség a koordinátákat. Ez vezet az a tény, hogy vissza fog térni hibás eredményeket, és más esetekben, hiba történik valamilyen bemeneti funkció pointDistance. Ahhoz, hogy megértsük, mi a stack trace, vizsgáljunk meg ezt a hiba segítségével F12 Developer Tools, és nézd meg a Script lapon:

Javascript - - - ieblog magyar

A stack trace jelenik meg a konzolon a fogási záradékot. és ha kiderül, hogy hiba történik Vt funkciót. mivel ez található a tetején a verem. A probléma megoldásához, a fejlesztő nem kell túl messzire menni a stack trace olvasás. Azt megsértették előfeltétele Vt funkciót. és ha megnézzük a köteget egy szinten, világossá válik, hogy ez miért történt: a kifejezés a hívás Vt működik maguknak kell a paramétereket a téren.

DOM és Error.stack Kivételek

var div = document.createElement ( 'div');

dobja új hiba (e.toString ());

Ön most valószínűleg kíváncsi-e vagy sem, hogy az ilyen modell. Ideális megoldás a fejlesztési könyvtárak, közművek. El kell döntenie, hogy szeretné-e rejteni a programkódot a DOM, vagy egyszerűen csak a feladat végrehajtásához. Ha azt szeretnénk, hogy elrejtse dolgozni DOM helyezve a megfelelő műveleteket try / catch blokkot és generációs Error objektum nem lehet a helyes megközelítés.

teljesítmény problémák

Formation stack trace kezdődik idején generációs objektum hiba; ez megköveteli a folyosón a jelenlegi végrehajtási verem. Annak elkerülése érdekében, teljesítmény problémák, amikor elhaladnak a különösen nagy köteg (esetleg még egy rekurzív verem lánc), Internet Explorer gyűjt alapértelmezés szerint csak az első 10 stack kereteket. Ezt a lehetőséget azonban konfigurálható beállításával statikus tulajdonság Error.stackTraceLimit mást jelent. Ez egy globális paraméter, és meg kell változtatni, hogy létrehoz egy hiba. különben nem lesz hatással a stack trace.

aszinkron kivételek

dobja új hiba ( „Nem lehet, hogy négyzetgyök negatív szám.”);

Amikor ezt a kódrészletet, akkor láthatjuk, hogy a stack trace-ben jelenik meg egy rövid késleltetés után. Ebben az időben, látni fogja, hogy az alján a verem nem Global Code. és névtelen függvények. Tény, hogy ez nem ugyanaz a funkciója, mint névtelen függvény visszahívásával át setTimeout. Mivel az elveszett összefüggésben körülvevő visszahívás feldolgozáshoz, akkor nem lehet tudni, hogy meghatározzák, milyen volt az oka a visszahívás. Ha megnézzük egy olyan forgatókönyvet, amely a visszahívás van regisztrálva kezelni a click esemény több különböző kulcsokat, nem tudja megmondani, hogy mi vonatkozik a regisztrált visszahívás hívást. Azt kell mondani, hogy ez egy kis korlátozás, mivel a legtöbb esetben a problémás területeket lehet azonosítani a verem tetején.

Test interaktív bemutató

Javascript - - - ieblog magyar

Nézd meg ezt az interaktív bemutató tesztet. Az Internet Explorer 10 a Windows 8 Consumer Preview. Akkor végre kódot keretében eval és vizsgálja meg a hibát, ha ez bekövetkezik. A kód az Internet Explorer 10, akkor is választhat egy sor kódot, amivel a mutatót a hiba sor a stack trace. Ön szabadon írja be a kódot a kódot, vagy válasszon egyet a néhány példa a listában. Ezen kívül, ha a kód példát lehet állítani Error.stackTraceLimit.

Referencia anyagok megtalálhatók az MSDN dokumentációt Error.stack és stackTraceLimit.

- Rob Pavese (Rob Paveza) vezetője, a program, a futási Chakra