Javascript ir tulkošanas programmēšanas valoda. Tāpat kā jebkurai citai valodai, arī izstrādātājam vai programmētājam bieži jārūpējas par kļūdu apstrādi. Pārsvarā programmētājam vai izstrādātājam ir jārīkojas ar kļūdām, piekļūstot dažiem datiem vai piešķirot tiem datu bāzi. Tātad kļūdu apstrāde ir būtiska jebkura programmēšanas projekta sastāvdaļa. Programmēšanā ir trīs veidu kļūdas, ar kurām bieži nākas saskarties programmētājam vai izstrādātājam.
Sintakses kļūda - Kļūda, rakstot kodu pret programmēšanas valodas sintaksi. Piemēram, izlaižot semikolu vai neievērojot funkcijas izveidošanas un izsaukšanas konvenciju.
Loģiska kļūda - Kļūda loģikas veidošanā. Piemēram, ieviešot nepareizu aritmētisko darbību, kuras rezultāts ir nepareizs.
Izpildlaika kļūda - Izpildes laikā radās kļūda. Tāpat kā funkcijas izsaukšana, to nedeklarējot.
Kļūda, ko mēs saņemam izpildlaika laikā, ir pazīstama arī kā izņēmums. Ārkārtas apstrāde ir ļoti svarīga. Tā kā mēs nevaram uzreiz mest kļūdas un kļūdu kodus. Mums tas jārisina. Tātad, šajā rakstā mums būs izpratne par to, kā rīkoties ar izņēmumiem, izmantojot javascript mēģinājumu noķert bloku. Mēs arī uzzināsim, kā mest pielāgotu ziņojumu pret kļūdu un kā izmantot bloku “beidzot” ar bloķēšanas mēģinājumu.
Sintakse
Mēģinājuma ķeršanas bloka izmantošanas sintakse ir ļoti vienkārša un viegli lietojama. Mēs varam vienkārši izmantot šādu mēģinājumu noķert bloku
izmēģināt// kods, kuru izmēģināt vai pārbaudīt
mest // iemest pielāgotu kļūdu, lai noķertu
nozveja (kļūda)
// kods pēc kļūdas saņemšanas
beidzot
// kods, kas jebkurā gadījumā tiek izpildīts
Šajā sintaksē vispirms mēs ierakstām dažas koda rindas blokā “mēģināt”, lai pārbaudītu. Ja šis kods tiek izpildīts vai veiksmīgi nokārtots tests. Bloks “mēģināt” nemetīs kļūdu blokā “catch” un izpildīs bloku “beidzot”. Pretējā gadījumā tas iemetīs kļūdu blokā “catch”, kur mēs varam rīkoties ar izņēmumiem atbilstoši dotajai kļūdai. Mēs varam mest pielāgotu kļūdu blokā “noķert”, kā arī izmantot atslēgvārdu “mest”. Bloks “Visbeidzot” tiks izpildīts jebkurā gadījumā. Vai nu bloķēšanas “mēģināt” metiens ir vai nav. Izmēģināsim pāris piemērus, lai labāk izprastu.
Piemēri
Pirmkārt, lai parādītu izmēģinājuma ķeršanas bloka vienkāršo un pamata darbību. Mēs cenšamies izsaukt funkciju, nedeklarējot to nekur.
papildinājums()Tas noteikti iemetīs kļūdu konsolē
Bet, ja mēs mēģinātu to izsaukt mēģinājumu blokā tagad
papildinājums()
nozveja (kļūda)
Tas vairs nerādīs nekādu kļūdu konsolē, jo kļūdas dēļ bloķēšanas blokā mēs nerakstījām nevienu kodu. Tātad, mēs tagad varam pārveidot un mierināt kļūdas ziņojumu nozvejas blokā.
izmēģinātpapildinājums()
nozveja (kļūda)
konsole.žurnāls ("Kļūdas ziņojums =>" + kļūda)
Mēs varam redzēt mūsu pielāgoto ziņojumu konsolē pret kļūdu.
Tātad, tas ir pats pamēģināšanas ķeršanas bloka lietojums. Tagad uzzināsim par pielāgotas kļūdas ievietošanu mēģinājumu blokā.
Mest
Pieņemsim, ka, mēģinot, mēs vēlamies mest atšķirīgu pielāgotu kļūdu uz dažādu kļūdu pamata. Mēs varam mest pielāgotu kļūdu, ka “Funkciju definīcija nepastāv." Kā šis
izmēģinātmest jaunu kļūdu ("Funkcijas definīcija nepastāv")
noķert (kļūdīties)
konsole.žurnāls ("Kļūdas ziņojums =>" + kļūdas)
Kā redzat izvadē, kļūdas ziņojums tagad ir mainīts uz mūsu izmesto pielāgoto kļūdu.
ProTip
Pieņemsim, ka mēs mēģinām šo mēģinājumu piesaistīt asinhronai funkcijai. Tas nedarbosies. Tā kā motors būtu pārvietojies uz nākamo rindu, izpildiet pēdējo bloku, un asinhronā funkcija tiks izpildīta vēlāk. Piemēram, ja mēs izmantojam setTimeout funkciju mēģinājuma ķeršanas blokā.
izmēģinātsetTimeout (() =>
papildinājums();
, 3000)
noķert (kļūdīties)
konsole.žurnāls ("Kļūdas ziņojums =>" + kļūdas)
beidzot
konsole.žurnāls ("beidzot sasniegts" bloks ")
Jūs varat novērot, ka vispirms tiek izpildīts bloks “beidzot”, un kļūda tiek izmesta vēlāk, ja mēs to aplūkosim. Tā nav kļūda no uztveršanas bloka, bet tā ir oriģināla programmēšanas kļūda, kas nozīmē, ka uztveršanas bloks netiek izpildīts, jo viņi mēģina bloķēt neatrada nevienu kļūdu.
Labi! Tagad, ja mēs vēlamies panākt, lai tas darbotos. Mums ir jāpielieto mēģinājums noķert bloku setTimeout funkcijas iekšpusē, nevis ārpusē. Tātad patiesais asinhronās funkcijas ieviešanas veids ar izmēģinājuma ķeršanas bloku būtu šāds.
setTimeout (() =>izmēģināt
papildinājums();
noķert (kļūdīties)
konsole.žurnāls ("Kļūdas ziņojums =>" + kļūdas)
beidzot
konsole.žurnāls ("beidzot sasniegts" bloks ")
, 3000)
Izejā var novērot, ka pēc 3 sekunžu aizkaves funkcijas setTimeout dēļ. Vispirms mēs esam saņēmuši kļūdas ziņojumu no uztveršanas bloka, un pēc tam tiek izpildīts “beidzot” bloks.
Secinājums
Šajā rakstā mēs esam iemācījušies pakāpeniski ieviest izmēģinājuma ķeršanas bloku javascript tik viegli un dziļi, ka jebkurš iesācējs pēc šī raksta izlasīšanas varēs to pielietot jebkurā vietā, kur viņam nepieciešams. Tātad, turpiniet mācīties un gūt pieredzi javascript ar linuxhint.com. Paldies!