A Javascript egy fordító programozási nyelv. Csakúgy, mint bármely más nyelv, a fejlesztőnek vagy a programozónak is gyakran törődnie kell a hibakezeléssel. Leginkább egy programozónak vagy fejlesztőnek kell kezelnie a hibákat, miközben hozzáférhet vagy hozzárendel bizonyos adatokat az adatbázishoz. Tehát a hibakezelés elengedhetetlen része minden programozási projektnek. Háromféle hiba van a programozásban, amelyekkel egy programozónak vagy fejlesztőnek gyakran szembesülnie kell.
Szintaktikai hiba - Hiba a kód írásakor a programozási nyelv szintaxisával szemben. Például pontosvessző hiányzik, vagy nem követi a függvény létrehozásának és meghívásának szokásait.
Logikai hiba - Hiba a logikai épületben. Például rossz számtani művelet végrehajtása, ami rossz kimenetet eredményez.
Futtatási hiba - Hiba történt a futás közben. Mint egy függvény meghívása deklarálás nélkül.
A hiba, amelyet a futás közben kapunk, néven is ismert kivétel. A kivételes kezelés nagyon fontos. Mert nem dobhatjuk el azonnal a hibákat és hibakódokat. Ezt kezelnünk kell. Tehát, ebben a cikkben megismerjük, hogyan kell kezelni a kivételeket a javascript try-catch blokkjának használatával. Megtanuljuk azt is, hogy miként dobhatunk egyedi üzenetet egy hiba ellen, és hogyan használhatjuk a „végre” blokkot egy próbálkozási blokkkal.
Szintaxis
A try-catch blokk használatának szintaxisa nagyon egyszerű és könnyen használható. Egyszerűen használhatjuk az ilyen try-catch blokkot
próbáld ki// kipróbálandó vagy tesztelhető kód
dobás // dobás egyéni hibát elkapni
fogás (hiba)
// kódot kapott hiba után
végül
// minden esetben végrehajtott kód
Ebben a szintaxisban először a „try” blokkba írunk néhány kódsort a teszteléshez. Ha a kód végrehajtásra kerül, vagy sikeresen teljesíti a tesztet. A „try” blokk nem dob hibát a „catch” blokkra, és végrehajtja a „végre” blokkot. Ellenkező esetben hibát dob a „catch” blokkba, ahol az adott hiba szerint kezelhetjük a kivételeket. Egyéni hibát dobhatunk a „fogás” blokkba is, a „dobás” kulcsszóval. A „Végül” blokk minden esetben végrehajtásra kerül. Vagy a „try” blokk dob vagy sem. Próbálkozzunk néhány példával a jobb megértés érdekében.
Példák
Mindenekelőtt a try-catch blokk egyszerű és alapvető működésének bemutatása. Megpróbálunk meghívni egy függvényt anélkül, hogy bárhol deklarálnánk.
kiegészítés()Ez mindenképpen hibát fog dobni a konzolban
De, ha most megpróbáljuk egy blokkban hívni
kiegészítés()
fogás (hiba)
Már nem mutat hibát a konzolon, mert hibára nem írtunk kódot a fogási blokkba. Tehát most módosíthatjuk és vigasztalhatjuk a hibaüzenetet a fogási blokkban.
próbáld kikiegészítés()
fogás (hiba)
konzol.napló ("Hibaüzenet =>" + hiba)
A hiba ellen láthatjuk az egyéni üzenetünket a konzolon.
Tehát ez a try-catch blokk nagyon alapvető használata. Most ismerkedj meg az egyéni hiba dobásával a try blokkban.
Dobás
Tegyük fel, hogy egy másik egyéni hibát akarunk dobni a különböző hibák alapján próbálkozás közben. Dobhatunk egy egyedi hibát, hogy „A funkciódefiníció nem létezik." Mint ez
próbáld kidobja az új hibát ("A funkciódefiníció nem létezik")
fogás (tévedés)
konzol.napló ("Hibaüzenet =>" + tévedés)
Amint az a kimeneten látható, a hibaüzenet mostantól az egyéni dobott hibánkra változik.
Profi tipp
Tegyük fel, hogy megpróbáljuk aszinkron függvényen alkalmazni ezt a próbát. Nem fog menni. Mivel a motor a következő sorra lépett, hajtsa végre az utolsó mondatot, és az aszinkron funkció később végrehajtásra kerül. Például, ha a setTimeout függvényt alkalmazzuk egy try-catch blokkon belül.
próbáld kisetTimeout (() =>
kiegészítés();
, 3000)
fogás (tévedés)
konzol.napló ("Hibaüzenet =>" + tévedés)
végül
konzol.napló ("elérte" a "blokkot")
Megfigyelheti, hogy a „végre” blokk kerül végrehajtásra először, és a hiba később dobódik, ha megnézzük a hibát. Nem a catch blokk hibája, hanem egy eredeti programozási hiba, ami azt jelenti, hogy a catch blokkot nem hajtják végre, mert megpróbálják a blokkot nem talált hibát.
Rendben! Most, ha működni akarunk. A try-catch blokkot a setTimeout függvényen belül kell alkalmaznunk, nem pedig kívül. Tehát az aszinkron funkció megvalósításának igazi módja egy try-catch blokkkal ilyen lenne.
setTimeout (() =>próbáld ki
kiegészítés();
fogás (tévedés)
konzol.napló ("Hibaüzenet =>" + tévedés)
végül
konzol.napló ("elérte" a "blokkot")
, 3000)
A kimenetben megfigyelhető, hogy a setTimeout funkció miatt 3 másodperc késés után. Először a fogási blokktól kaptuk a hibaüzenetet, majd a „végre” blokk végrehajtásra kerül.
Következtetés
Ebben a cikkben megtanultuk lépésről lépésre megvalósítani a try-catch blokkot a javascriptben olyan könnyű és mélyreható módon, hogy a cikk elolvasása után bármely kezdő bárhol alkalmazhassa. Tehát folytassa a tanulást és a tapasztalatok javítását a javascriptben a linuxhint segítségével.com. Köszönöm!