E-gradiva > Računalništvo > Programiranje > Načrtovanje in razvoj spletnih aplikacij > Javascript > Lovljenje napak v Javascriptu

Prijava

Lovljenje napak v JavaScriptu

Velikokrat, ko brskate po svetovnem spletu, se vam zgodi, da se na strani, ki jo pregledujete pojavijo napake v Javascriptu. Če imate vključen očiščevalnik, se vam pojavi opozorilno okno, ki sporoča, da je prišlo do napake in vsa vpraša, če želite stran pregledati z očiščevalnikom ("Do you wish to debug?“). Takšna opozorilna okna so uporabna za razvijalce spletnih strani, ne pa za njihove uporabnike. Te napake lahko ulovimo s pomočjo stavka try...catch ali s pomočjo zaznave dogodka onerror (to je starejša različica lovljenja napak, ki jo je ilo možno uporabiti že v brskalniku Netscape 3).

 

Primer lovljenja napak s pomočjo stavka try ... catch


<html>

       <head>

               <script type="text/javascript">

       var txt=""

                 function message()

                 {

<html>

       <head>

       <script type="text/javascript">

<html>

       <head>

       <script type="text/javascript">

<html>

       <head>

       <script type="text/javascript">

                       try

                       { adddlert("Dobrodosli!")}

                       catch(err)

                               {

                               txt="Na tej strani je napaka.\n\n"

                               txt+="Opis napake: " + err.description + "\n\n"

                               txt+="Kliknite v redu za nadaljevanje.\n\n"

                               alert(txt)

                               }

                 }               </script>

       </head>

 

       <body>

       <input type="button" value="Poglej sporocilo" onclick="message()" />

       </body>

</html>

 

 

Uporaba potrditvenega okna pri lovljenju izjem

 

<html>

       <head>

       <script type="text/javascript">

var txt=""

function Sporocilo()

{

try

   {

   adddlert("Dobrodosli!")

   }

catch(err)

   {

     txt="Na tej spletni strani je napaka.\n\n"

     txt+="Kliknite V redu da si ogledate to stran,\n"

     txt+="ali kliknite Preklici da se vrnete na prejsno stran.\n\n"

     if(!confirm(txt))

         {

         document.location.href="http://www.feri.uni-mb.si/"

         }

   }

}     

 </script>

       </head>

 

       <body>

            <input type="button" value="Poglej sporocilo" onclick="Sporocilo()" />

       </body>

</html>

 

 

Vrnitev različnih vrst napak ob nepravilnem vnosu


<html>

       <body>

               <script type="text/javascript">

                                 var x=prompt("Vpisite eno stevilo med 0 in 10:","");

                       try

                       {

                               if(x>10)  throw "Napaka1"

                               else if(x<0)throw "Napaka2"

                                    else if(isNaN(x)) throw "Napaka3"

                       }

                       catch(er)

                       {

                               if(er=="Napaka1")

                                  alert("Napaka! Stevilo je preveliko.")

                               if(er == "Napaka2")

                                  alert("Napaka! Stevilo je premajhno.")

                               if(er == "Napaka3")

                                   alert("Napaka! To ni stevilka.")

                       }              

</script>

       </body>

 

Obravnava napak s pomočjo lovljenja dogodka onerror



<html>

       <head>

               <script type="text/javascript">

onerror=Obravnava_napak;

                       var txt=""

                       function Obravnava_napak(sporocilo,url,st_vrstice)

                       {

                          txt="Na tej strani je napaka.\n\n";

                          txt+="Napaka: " + sporocilo + "\n";

                          txt+="URL: " + url + "\n";

                          txt+="Vrstica: " + st_vrstice + "\n\n";

                          txt+="Kliknite v redu za nadaljevanje.\n\n";

                          alert(txt);

                       return true;

                       }

 

                       function Sporocilo()

                       {

                          adddlert("Dobrodosli!");

                       }              

              </script>

       </head>

       <body>

       <input type="button" value="Poglej sporocilo" onclick="Sporocilo()" />

       </body>

</html>