JavaScriptin try/catch/finally-lause
- Edellinen sivu throw
- Seuraava sivu var
- Palaa ylös JavaScript lause viittausopas
Määrittely ja käyttö
Try/catch/finally-lause käsittelee koodin lohkossa mahdollisesti tapahtuvia osittaisia tai täydellisiä virheitä samalla kun koodia suoritetaan.
Virheet voivat olla ohjelmoijan aiheuttamia koodivirheitä, virheellisiä syötteitä aiheuttamia virheitä ja muita odottamattomia tilanteita.
Try-lause mahdollistaa virheellisen koodin lohkon määrittämisen suoritettaessa virheen tarkistamista.
Jos try-lohkossa tapahtuu virhe, catch-lause mahdollistaa määritetyn koodiblokin suorittamisen.
finally-lause mahdollistaa koodin suorittamisen try- ja catch-lohkon jälkeen riippumatta tuloksesta.
Huomautus:catch- ja finally-lauseet ovat valinnaisia, mutta niistä täytyy käyttää ainakin yksi try-lauseen kanssa (ei molempia yhdessä).
Vinkki:Virhe tapahtuessa JavaScript lopettaa suorituksen ja luo virheilmoituksen. Luo mukautetut virheet (heitä poikkeuksia) throw-lauseella (heitä poikkeuksia). Jos käytät throwia yhdessä try- ja catch-lauseiden kanssa, voit hallita ohjelman suoritusvirtaa ja luoda mukautetut virheilmoitukset.
Lisää tietoa JavaScript-virheistä löydät JavaScript-virheopastuksesta.
Esimerkki
Tässä esimerkissä olemme kirjoittaneet väärin koodiin (try-lohkossa).
Tämä esimerkki tulisi ilmoittaa "Tervetuloa vieraaksi!", mutta alert-kirjainta on kirjoitettu väärin.
catch-lohko ottaa vastaan virheet ja suorittaa koodia niiden käsittelyä varten:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Tervetuloa vieraaksi!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
Lisää TIY-esimerkkejä sivun alalta.
Syntaksi
try { tryCode - Koodibloki, jota yritetään } catch(err) { catchCode - Koodibloki, joka käsittelee virheitä } lopuksi { finallyCode - Koodibloki, joka suoritetaan riippumatta try / catch tuloksesta }
Parametriset arvot
Parametri | Kuvaus |
---|---|
tryCode | Välttämätön. Suoritettavaa virheen tarkistava koodibloki. |
err | Välttämätön, jos käytetään yhdessä catchin kanssa. Määritä viitataan virheen paikallinen muuttuja. Tämä muuttuja voi viitata Error-objektiin (jossa on tietoa tapahtuneesta virheestä, esimerkiksi viesti "'addlert' is not defined"). Jos poikkeus on luotu throw-lauseella, viittaus on throw-lauseessa määritelty objekti (katso "Lisää esimerkkejä"). |
catchCode | Valinnainen. Suoritettava koodibloki, jos try-lohkossa tapahtuu virhe. Jos virhettä ei tapahdu, tämä koodibloki ei koskaan suoriteta. |
finallyCode | Valinnainen. Suoritettava koodibloki riippumatta try / catch tuloksesta. |
Tekninen yksityiskohta
JavaScript-versio: | ECMAScript 3 |
---|
Lisää esimerkkejä
Esimerkki
Tämä esimerkki tarkistaa syötteen. Jos arvo on väärin, heitetaan poikkeus (err).
catch lauseen avulla otetaan vastaan poikkeukset (err) ja näytetään mukautettu virheilmoitus:
<!DOCTYPE html> <html> <body> <p>Lisää numero välillä 5 ja 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Testaa Syöte</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "On tyhjä"; if(isNaN(x)) throw "Ei luku"; if(x > 10) throw "Liian korkea"; if(x < 5) throw "Liian matala"; } catch(err) { message.innerHTML = "Syöte " + err; } } </script> </body> </html>
Esimerkki
lopullisesti lauseesta suoritetaan koodi try ja catch jälkeen riippumatta tuloksesta:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Tyhjä"; if(isNaN(x)) throw "Ei luku"; if(x > 10) throw "Liian korkea"; if(x < 5) throw "Liian matala"; } catch(err) { message.innerHTML = "Virhe: " + err + "."; } lopuksi { document.getElementById("demo").value = ""; } }
selain tukee
ilmaisu | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | Tuki | Tuki | Tuki | Tuki | Tuki |
Liittyvät sivut
JavaScript-opas:JavaScriptin virheet
JavaScriptin viittausoppikirja:JavaScriptin throw-lause
- Edellinen sivu throw
- Seuraava sivu var
- Palaa ylös JavaScript lause viittausopas