Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- int Func(int value)
- {
- if (value < 0)
- {
- //выброс исключения классу exception
- throw std::runtime_error/*или logic_error*/("Число меньше нуля!");
- }
- //выброс исключения указателю на char
- if(value == 0)
- {
- throw "Число равно нулю";
- }
- //выброс непредвиденного исключения
- if(value == 1)
- {
- throw 1;
- }
- std::cout << "Value = " << value << std::endl;
- }
- int main(int argc, char *argv[])
- {
- setlocale(LC_ALL, "Rus");
- srand(time(NULL));
- try
- {
- Func(-1);
- }
- catch (/*ссылка на объект класса exception из стандартного пространства имен*/std::exception &ex)
- {
- std::cout << "[1] " << /*получение того,что было выброшено в throw*/ex.what() << std::endl;
- }
- //еще один блок catch, ловящий указатель на char, указанный в throw
- catch(const char* ex)
- {
- std::cout << "[2] " << ex << std::endl;
- }
- //блок catch, ловящий неуказанные исключения
- //лучше ставить в конец
- catch(...)
- {
- std::cout << "[?] Непредвиденная ошибка" << std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement