Javascript - - - ieblog română
aplicatii Debugging
Să considerăm un exemplu simplu script pentru a calcula distanța dintre două puncte - (0, 2) și (12, 10):
arunca nouă eroare ( „Nu se poate rădăcina pătrată a numărului negativ.“);
Acest script conține o eroare - nu pătrat diferență de coordonate. Aceasta conduce la faptul că va returna rezultate incorecte, iar în alte cazuri, apare o eroare pentru unele pointDistance funcție de intrare. Pentru a înțelege ce o urmă stivă, să examinăm această eroare, utilizând Instrumentele F12 pentru dezvoltatori, si uita-te la tab-ul Script:

Urma stivă este afișată pe consola din clauza de captură. și odată ce devine clar faptul că apare o eroare în funcția rădăcină pătrată. deoarece este situat în partea de sus a stivei. Pentru a rezolva această problemă, dezvoltatorul nu are nevoie pentru a merge prea departe în stivă urmă lectură. Acesta a fost încălcat o condiție esențială pentru funcția de rădăcină pătrată. și, dacă ne uităm la stiva pe un singur nivel, devine clar de ce acest lucru sa întâmplat: a expresiei din rădăcină pătrată apel funcționează ei înșiși ar trebui să fie parametrii pentru pătrat.
Excepții DOM și Error.stack
var div = document.createElement ( 'div');
arunca nouă eroare (e.toString ());
Acum sunteți întrebați, probabil, dacă este sau nu de a utiliza un astfel de model. Acesta este cel mai potrivit pentru dezvoltarea bibliotecilor, utilități. Trebuie să decideți dacă doriți să ascundeți codul dvs. de a lucra cu DOM sau pur și simplu a efectua sarcina. Dacă doriți să ascundeți pentru a lucra cu DOM, plasând operațiunile corespunzătoare în try blocului catch / și generarea de obiecte de eroare nu poate fi abordarea corectă.
probleme de performanță
Formarea stiva urme începe la momentul generării erorii de obiect; acest lucru necesită trecerea stivei de execuție curent. Pentru a evita problemele de performanță atunci când trece un teanc deosebit de mare (posibil chiar și un lanț de stivă recursiv), Internet Explorer colectează în mod implicit doar primele 10 cadre stivă. Cu toate acestea, această opțiune poate fi configurată prin setarea proprietății statice Error.stackTraceLimit sens diferit. Acesta este un parametru global, și trebuie să fie schimbat pentru a genera o eroare. în caz contrar nu va afecta urmelor din stivă.
excepții asincrone
arunca nouă eroare ( „Nu se poate rădăcina pătrată a numărului negativ.“);
Când acest fragment de cod, veți vedea că trasarea stivei a fost afișat după o scurtă întârziere. În acest moment, veți vedea că în partea de jos a stivei nu este Codul mondial. și funcția Anonim. De fapt, acest lucru nu este aceeași funcție anonim ca o funcție de apel invers trecut la setTimeout. Deoarece contextul pierdut din jurul procesarea de apel invers, este posibil să nu fi capabil de a determina ce a fost cauza de apel invers. Dacă te uiți la un scenariu în care un apel invers este înregistrat pentru a gestiona evenimentul click de mai multe chei diferite, nu vă pot spune ceea ce privește cererea de apel invers înregistrat. Ar trebui să spun că aceasta este o limitare minoră, deoarece în majoritatea cazurilor, zonele cu probleme vor fi identificate în partea de sus a stivei.
demonstrație interactivă test

Check out acest test demonstrație interactivă. Utilizarea Internet Explorer 10 în Windows 8 Anunț de consum. Puteți executa cod în contextul eval și să examineze eroarea în cazul în care se produce. În cazul în care codul în Internet Explorer 10, puteți selecta, de asemenea, o linie de cod, punând cursorul pe linia de eroare în trasarea stivei. Sunteți liberi să introduceți codul în codul, sau selectați unul dintre cele câteva exemple din listă. În plus, atunci când exemplele de cod poate fi setat Error.stackTraceLimit.
Materialele de referință pot fi găsite în documentația MSDN pentru Error.stack și stackTraceLimit.
- Rob Pavese (Rob Paveza), șef al programului, runtime Chakra