Rumah >pembangunan bahagian belakang >C++ >Contoh program C++ yang menunjukkan pengendalian pengecualian
Andaikan terdapat fungsi yang mengira beberapa operasi matematik yang kompleks. Walau bagaimanapun, beberapa pengecualian mungkin berlaku semasa operasi. Kita perlu mengendalikan pelbagai jenis pengecualian yang mungkin berlaku dan melakukan perkara berikut.
Kami mempunyai tatasusunan yang mengandungi sepasang nilai dan menghantarnya kepada fungsi. Jika sebarang pengecualian berlaku, kami mengendalikannya, jika tidak mencetak nilainya.
Kita hanya perlu mengendalikan pengecualian, tanpa mengira mekanisme yang mana fungsi menjana pengecualian.
Jadi jika input ialah arr = {{361643035132, 2297873642249}, {-17, 15}};, maka outputnya ialah -
Memory Low! Exception: val1 is negative
Pasangan nilai pertama terlalu besar untuk dikendalikan, jadi "Keluar of Memory" dicetak. Nilai pertama pasangan nilai kedua ialah nombor negatif. Fungsi yang disediakan tidak dapat mengendalikannya, jadi pengecualian "val1 adalah negatif" dijana/dibuang,
Untuk menyelesaikan masalah ini, kami akan mengikuti langkah berikut −
#include <iostream> #include <exception> #include <string> #include <stdexcept> #include <vector> #include <cmath> using namespace std; class Solution { private: static int value; public: static int foo(long long val1, long long val2) { value += 1; if(val1 < 0) { throw std::invalid_argument("val1 is negative"); } vector<int> vectorList(val1, 0); int r = -1, c = sqrt(-1); if(val2 == 0) throw 0; r = (val1 / val2) * r; int ans = vectorList.at(val2); return r + val1 - val2 * ans; } static int getVal() { return value; } }; int Solution::value = 0; void solve(int t, long int values[][2]) { for (int i = 0; i < t; i++) { long long val1, val2; val1 = values[i][0]; val2 = values[i][1]; try { cout << Solution::foo(val1, val2) << '\n'; } catch (const std::bad_alloc&) { cout << "Memory Low!\n"; } catch (const std::exception& e) { cout << "Exception: " << e.what() << '\n'; } catch (...) { cout << "Unhandled Exception\n"; } } } int main() { long int arr[][2] = {{361643035132, 2297873642249}, {-17, 15}}; solve(2, arr); }
long int arr[][2] = {{361643035132, 2297873642249}, {-17, 15}}; solve(2, arr);
Atas ialah kandungan terperinci Contoh program C++ yang menunjukkan pengendalian pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!