|
|||||||
Обработка исключения try, catch, throw
Время создания: 13.06.2020 20:13
Раздел: C++ - Примеры кода - Работа на уроке
Запись: Shut913/Tetra-notes-Programming/master/base/1592068439dk93urz411/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
#include <iostream> // == Постановка проблемы //int find(const char* str, char ch, std::string& info) //{ // for (int i{}; i < strlen(str); ++i) // if (str[i] == ch) // return i; // // return -1; //} // Генерация исключения throw //throw -1; //throw "Error" //throw ENUM_OPEN_FILE_FAILED //throw d; //throw MyException("Error.....") // Поиск исключения (мониторинг) try{} //try { // // .. // throw -1; //} // Обработка исключения catch(<type> exception) {} //try //{ // //} //catch (int e) //{ // //.. // std::cout << "This is " //} //catch (const std::string& e) //{ // //} //catch (char) //{ // //} // try throw catch пример //int main() //{ // try // { // //.. // std::string str = "lskjdf"; // throw str; // std::cout << "our functionality"; // } // catch (int e) // { // std::cout << "Int exception: " << e << "\n"; // } // catch (double) // { // std::cout << "Double exception: " << "\n"; // } // catch (const std::string& e) // { // std::cout << "String exception: " << e << "\n"; // } // // std::cout << "End of main()"; //} //int main() //{ // std::cout << "Enter a number: "; // double a; // std::cin >> a; // // try // { // if (a < 0) // throw "Negative argument"; // // std::cout << "The sqrt of " << a << " = " << sqrt(a) << "\n"; // } // catch (const char* e) // { // std::cout << "Error: " << e; // } // // std::cout << "End of main()"; //} // Раскручивание стека //double mYSqrt(double a) //{ // if (a < 0) // throw "Negative argument"; // // return sqrt(a); //} // //void main() //{ // std::cout << "Enter a number: "; // double a; // std::cin >> a; // // try // { // double result = mYSqrt(a); // std::cout << "Result = " << result << "\n"; // } // catch (const char* e) // { // std::cout << "Error: " << e << "\n"; // } //} //void four() //{ // std::cout << "Start four()\n"; // std::cout << "four() throw int exception\n"; // throw "error"; // std::cout << "End of four()\n"; //} // //void three() //{ // std::cout << "Start three()\n"; // four(); // std::cout << "End of three()\n"; //} // //void two() //{ // std::cout << "Start two()\n"; // try // { // three(); // } // catch (double) // { // std::cout << "two() caught double exception\n"; // } // std::cout << "End of two()\n"; //} // //void one() //{ // std::cout << "Start one()\n"; // try // { // two(); // } // catch (int) // { // std::cout << "one() caught int exception\n"; // } // catch (double) // { // std::cout << "one() caught double exception\n"; // } // std::cout << "End of one()\n"; //} // //void main() //{ // std::cout << "Start main()\n"; // try // { // one(); // } // catch (int) // { // std::cout << "main() caught int exception\n"; // } // // std::cout << "End of main()\n"; //} // catch-all //void main() //{ // try // { // throw 4; // } // catch (double e) // { // std::cout << "double exception\n"; // } // catch (...) // <--- эллипсис // { // // std::cout << "catch-all\n"; // } //} // Спецификация исключений void func throw(....) НЕ ИСПОЛЬЗОВАТЬ!!! // 1. int func() throw() {........} // ф-ция не генерирует исключения // 2. int func() throw(double) {........} // ф-ция генерирует исключение типа double // 3. int func() throw(...) {........} // ф-ция генерирует любые исключения |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|