Kezdőoldal » Számítástechnika » Programozás » C++ try-catch kivételkezelést...

C++ try-catch kivételkezelést el tudná valaki magyarázniaz alábbi példán? igazából a catch-től nem értem pl. hogy adhatnám meg hogy ha valaki betűt ír és azt kellene lekezelni?

Figyelt kérdés

int main () {

try

{

int age=0;

std::cin>>age;

if (age>100 || age<0)

{

throw 4;

}

}


catch (int b)

{

cout << "An exception occurred. Exception Nr. " << b << '\n';

getch();

}


}


2018. jan. 8. 17:38
 1/4 anonim ***** válasza:
Rég nem C++-oztam, de ha jól rémlik van olyan hogy cím.fail(), ami nyilván ami a neve is sugallja, ha a bekeres sikertelen volt akkor igaz értéket ad. Arra viszont emlékszem hogy C++-ban mindent el lehet dobni. Így pl dobsz valamit és azt kapod el. Arra figyelj hogyha másik számot dobsz akkor le kell ellenőrizned hogy melyik volt az elkapott szám és aszerint cselekedni.
2018. jan. 8. 17:53
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

Ezt a közvetlenül int-be olvasunk hülyeséget semmilyen modernebb nyelv nem vette át, pont azért mert borzasztó macera a hibakezelés.

Olvass be stringbe, aztán azt tetszőlegesen vizsgálgathatod.

2018. jan. 8. 20:07
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Tuképpen azt csinálod, hogy az int-be olvasás hibáját elnyomod, és egy másik kivételt dobsz helyette.


Ahogy már írták, javaslom pl. az stoi használatát.

[link]

"If no conversion could be performed, an invalid_argument exception is thrown.

If the value read is out of the range of representable values by an int, an out_of_range exception is thrown."

Ezeket kezeld le a catch-ben. Minden más ellenőrzést elég utána.

2018. jan. 9. 05:46
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
2018. jan. 9. 05:48
Hasznos számodra ez a válasz?

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!