JavaScript

Javascript Mēģiniet noķert

Javascript Mēģiniet noķert

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

izmēģināt
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āt
papildinā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āt
mest 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āt
setTimeout (() =>
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!

OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...