Kā ieviest izņēmumu apstrādi C ++ versijā?

Šis raksts palīdzēs jums saprast, kas ir izņēmumu apstrāde un kā praktiski demonstrējot ieviest izņēmumu apstrādi C ++.

Izņēmumi ir neparasti apstākļi darbības laikā vai sastādīšanas laikā. ir ļoti būtisks jēdziens c ++. Šis raksts jūs iepazīstinās ar izņēmumu apstrādi C ++, kā arī dažādiem tā veidiem.



Šajā rakstā tiks apskatīti šādi norādījumi,



Tad ļaujiet mums sākt darbu,

Izņēmumu apstrāde C ++

Izņēmumu veidi

Ir divu veidu izņēmumi,



Izpildes laika izņēmums

Tas ir izņēmums, kas noķerts skriešanas laikā.

Kompilēšanas laika izņēmums



Tas ir izņēmums, kas noķerts kompilēšanas laikā.

Turpinot ar šo izņēmumu apstrādes rakstu C ++,

Kas ir izņēmumu apstrāde?

Kļūdas traucē normālu programmas izpildi. Izņēmumu apstrāde ir ļoti nepieciešama, un tas ir kļūdu vai izņēmumu apstrādes process. Tas pārliecinās, ka izņēmumi neietekmē programmas izpildi, un lēnām tos apstrādā, neradot problēmas programmas izpildē.

Apsverot izņēmumu apstrādi, ar to ir saistīti trīs termini,

Izmēģiniet

Kods šajā blokā ir kā izmēģinājuma kods, kas var radīt izņēmumu. Šis izņēmums ir noķerts ķeršanas blokā.

Noķert

Šajā blokā esošais kods tiek izpildīts, kad mēģinājuma blokos esošais kods rada izņēmumu.

Mest

Šis atslēgvārds tiek izmantots, lai radītu izņēmumu, kad tas sastopams. Izņēmums tiek nosūtīts izņēmumu apstrādātājam.

Sintakse:

Mēģinājuma blokā esošais kods tiek izpildīts. Ja rodas kļūda, tad atslēgvārda metiens izņēmumu izņēmumam ir izņēmums, tas ir, bloķēšanas bloks. Pēc tam uztveršanas bloks izpildīja kodu, kas atrodas tā blokā, tādējādi apstrādājot izņēmumu.

Apskatīsim koda paraugu izņēmumu apstrādei c ++

Parauga kods

#include izmantojot nosaukumvietu std try {// kods mēģinājumam mest & ldquoexception & rdquo} noķert (izņēmums) {// kods nozvejai} int main () {int x = 1 mēģinājums {cout<< 'Try Block: '<

Izeja:

Rezultāts - izņēmumu apstrāde C ++ versijā - Edureka

Paskaidrojums

Šī programma parāda izņēmumu apstrādi. Mums ir mainīgais x, kuram tiek piešķirta vērtība 1. Tad mums sākas mēģinājuma bloks. Šajā blokā mums ir paziņojums if ar nosacījumu x<10.

Mūsu gadījumā nosacījums ir patiess, jo x ir viens. Pēc tam programma iemet izņēmumu un vadība pārslēdzas, lai bloķētu. Mēs izpildām nosacījumu ķeršanas daļā un izejam no bloka.

noķert (...) {izmaksas<< 'Default Exceptionn'<

Visbeidzot, mēs izpildām atlikušos paziņojumus pēc uztveršanas bloķēšanas un izejas programmas.

Var būt vairāki paziņojumi par nozveju, atkarībā no iespējamo izņēmumu skaita.

kas ir init pitonā

Turpinot ar šo izņēmumu apstrādes rakstu C ++,

Nozvejas bloķēšanas kļūme

Apsveriet iepriekšējo programmu, ja x vietā metiena atslēgvārds izmet “ABC”, tad nozvejas funkcija to nespēs apstrādāt. Tas parādīs kļūdu,

Šādā gadījumā mēs varam parādīt mūsu uzvarēto kļūdas ziņojumu.

Lai to atrisinātu, kodam jāpievieno noklusējuma funkcija catch, lai risinātu šādus jautājumus.

#include izmantojot nosaukumvietu std int main () {int x = 1 mēģiniet {cout<< 'Try Block: '<

Rezultāts:

Paskaidrojums:

Šis kods ir līdzīgs iepriekšējam. Vienīgās izmaiņas ir tas, ka izmestais izņēmums ir char tipa. Tā rezultātā mūsu ķeršanas funkcija ir bezjēdzīga. Tāpēc mēs esam iekļāvuši noklusējuma nozvejas funkciju.

Ja neviens no nozvejas paziņojumiem neatbilst, tiek izpildīts noklusējuma nozveja.

Vairāki ķeršanas bloki

Vienam mēģinājuma blokam var būt vairāki uztveršanas bloki.

Šeit ir piemērs,

#include izmantojot nosaukumvietu std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Izeja:

Paskaidrojums:

Iepriekš minētajā kodā mēs izmantojam vairākus nozvejas paziņojumus. Mums ir funkciju pārbaude, kas rada izņēmumu. Pirmajā testa gadījumā vērtība ir 10. Tā kā 10 ir lielāks par nulli, ‘a’ raksturs tiek izmests un to uztver otrā nozvejas funkcija.

Otrajā gadījumā vērtība ir mazāka par 0, tāpēc tiek izmesta vērtība -1, un to uztver vesels skaitlis

Izņēmumu apstrāde pamata un atvasinātajā klasē:

Ja tiek pieķerti bāzes un atvasinātās klases izņēmumi, atvasinātās klases nozveja jāveic pirms bāzes klases.

Šeit ir daži izņēmumi:

  • std :: izņēmums

  • logic_error

  • runtime_error

  • slikts_alloks

  • bad_cast

  • slikts_izņēmums

Ar to mēs esam nonākuši pie šī emuāra beigām “Izņēmumu apstrāde C ++”. Es ceru, ka jums šis informatīvais un noderīgais palika, sekojiet līdzi vairāk pamācībām par līdzīgām tēmām. Jūs varat arī pārbaudīt mūsu apmācības programmu to varat iegūt padziļinātas zināšanas par jQuery kopā ar dažādiem tā lietojumiem tiešsaistes apmācībai tiešsaistē ar diennakts atbalstu un piekļuvi mūža garumā.

Vai mums ir jautājums? Pieminiet tos šī emuāra komentāru sadaļā, un mēs ar jums sazināsimies.