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?
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();
}
}
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.
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.
"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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!