*   >> läser Utbildning artiklar >> science >> programming

Kasta Flera Operander med C ++ Exceptions

Undantagshantering i C ++ - Del 2 Inledning Detta är del 2 i min serie, Undantag i C ++. Med C ++ undantag, vad kastas av kast uttrycket kallas en operand. I denna del av serien ser vi hur flera operander kan kastas i C ++. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser. Olika sätt att kasta Flera Operander En prova-block kan ha flera kasta uttalanden, och varje påstående kastar en viss (en) operand.

Ett kast uttalande kan också kasta en matris. Vi tittar på dessa två sätt att kasta flera operander. Flera kasta Uttalanden i ett försök block Du kan ha flera kasta uttalanden i ett försök block. Det viktiga här är att operanden för varje kast uttalande bör vara av en typ som skiljer sig från de andra kasta uttalanden. Det bör finnas samma antal motsvarande catch -block. Vid det här laget måste jag göra vissa förtydliganden mellan vad vi lärt oss i den tidigare delen av serien och vad vi lär oss nu.

Om det i try-blocket, har du flera kasta uttalanden av samma typ, då behöver du en catch-block för alla kast. I catch-blocket if-satser kan användas för att välja de olika operand värden. Vad vi lär nu är detta: Om det i try-blocket, har du flera kasta uttalanden var av en annan typ, då behöver du motsvarande catch-block för de olika typerna. Var och en av dessa fångst block skulle inte behöva if-satser att välja någon operand värde, eftersom kriteriet för en catch-block för att fånga ett kast är bara att parametern typ av fångstblocket bör vara densamma som typen av kastat operanden.

Här bör parametrar fångstblocken vara av olika typer, var och en motsvarar ett av de kasta uttalande i try-blocket. Varje catch-block fångar kast vars operand är av samma typ som parameter. Följande kod illustrerar detta: #include using namespace std; int main () {try {kasta 5; //en int kasta 4,6; //en dubbel (för float) kasta "B"; //en röding kasta "någon text"; //en sträng} catch (int i) {cout} catch (dubbel d) {cout} catch (char c) {cout} catch (const char * str) {cout} return 0; } Detta är nu viktigt: I ett försök block, något uttalande utförs före utgången av try-blocket efter ett kast uttalande har utförts.

Så i ovanstående kod, kommer endast den första kastet uttalande utföras; Det kommer att fångas av int catch-block. Om du vill ha den dubbla undantaget ska börja gälla, måste du ta bort någon kasta uttalan

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.