Poikkeamien käsittely C ++ - Osa 2 Johdanto Tämä on osa 2 minun sarja, Poikkeus C ++. C ++ poikkeuksin, mitä on heittänyt heitto ilmaisu kutsutaan operandin. Tässä osa sarjasta näemme, miten useita operandeihin voidaan heittää C ++. Huomautus: Jos et näe koodia tai jos luulet jotain puuttuu (rikki linkki, kuva poissa), vain yhteyttä minuun [email protected]. Eli minuun yhteyttä pienintäkään ongelmaa olet mitä luet. Eri tapoja heittää Useat Operandit yrittää lohko voi olla useita heittää lausuntoja, ja jokainen lausunto heittää erityisesti (yksi) operandi.
Heittää lausunto voi myös heittää jono. Katsomme nämä kaksi tapaa heittää useita operandien. Useat heittää liitetiedoissa try-lohkon voi olla useita heittää lausuntoja yrittää estää. Tärkeintä tässä on, että operandi jokaisen heiton selvityksessä olisi oltava tyyppiä erilainen kuin muut heittää lausuntoja. Siellä pitäisi olla sama määrä vastaa saaliin lohkoja. Tässä vaiheessa minun täytyy tehdä joitakin selvennyksiä sen välillä, mitä olemme oppineet edellisen osa sarjasta ja mitä opimme nyt.
Jos yrittää estää, sinulla on useita heittää lausuntoja samantyyppisiä, sinun täytyy yksi catch kaikille heittoja. Vuonna catch jos-lausuntoja voidaan valita eri operandin arvot. Mitä opimme nyt on tämä: Jos yrittää estää, sinulla on useita heittää lausuntoja jokainen erityyppinen, sinun täytyy vastaava saalis lohkot eri tyyppejä. Kukin näistä saaliista lohkojen ei tarvitse jos-lausuntoja valita minkä tahansa operandin arvoa, koska kriteeri catch saalis heittää on vain, että parametri tyyppi catch pitäisi olla sama kuin tyyppi heitetään operandin.
Täällä, parametrit saalis lohkojen pitäisi olla erityyppisiä, jokainen vastaa yhtä heittää lausuman try-lohkon. Jokainen catch saaliit heitto joiden operandi on samaa tyyppiä kuin sen parametri. Seuraava koodi kuvaa tätä: # include using namespace std; int main () {try {heittää 5; //Int heittää 4,6; //Kaksinkertainen (float) heittää "B"; //Char heittää "tekstiä"; //Merkkijono} catch (int i) {cout} catch (double d) {cout} catch (char c) {cout} catch (const char * str) {cout} return 0; } Nyt tämä on tärkeää: Vuonna yrittää estää, ei lauseke suoritetaan ennen loppua yrittää lohkon jälkeen heiton selvitys on suoritettu.
Joten edellä koodi, vain ensimmäinen heitto selvitys toteutetaan; se kuulu int catch. Jos haluat kaksinkertainen poikkeus voimaan, sinun täytyy poistaa kaikki heittää lausunto yläpuolella kaksinkertainen heittää lausuman yrittää estää. Jos haluat char p