Оператор try
Оператор try открывает блок кода,
в котором могут возникнуть исключения.
Этот блок всегда сопровождается одним
или несколькими блоками catch,
которые перехватывают и обрабатывают
возникшие исключения. Если в блоке
try исключение не возникает,
блоки catch пропускаются.
Если исключение возникает, управление
немедленно передается соответствующему
блоку catch. Оператор try
не принимает параметров.
Синтаксис
try
{
// код, который может выбросить исключение
}
catch (тип исключения)
{
// обработка исключения
}
Пример
Давайте выбросим исключение внутри блока
try и перехватим его в блоке
catch:
#include <iostream>
using namespace std;
int main()
{
try
{
throw 123;
}
catch (int e)
{
cout << "Caught: " << e << endl;
}
return 0;
}
Результат выполнения кода:
"Caught: 123"
Пример
Давайте обработаем исключение типа
runtime_error:
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
try
{
throw runtime_error("something went wrong");
}
catch (runtime_error& e)
{
cout << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"something went wrong"
Пример
Давайте покажем, что если исключение
не возникает, блоки catch
пропускаются:
#include <iostream>
using namespace std;
int main()
{
try
{
cout << "no exception" << endl;
}
catch (int e)
{
cout << "Caught: " << e << endl;
}
return 0;
}
Результат выполнения кода:
"no exception"