Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mengendalikan pengecualian dalam fungsi C++?
Dalam C++, pengecualian dikendalikan melalui pernyataan cuba-tangkap: kod dalam blok cuba boleh membuang pengecualian. Blok tangkapan menangkap pengecualian standard atau pengecualian tersuai. Kata kunci noexcept mengisytiharkan bahawa fungsi itu tidak akan membuang pengecualian untuk pengoptimuman.
Bagaimana untuk mengendalikan pengecualian dalam fungsi C++?
Dalam C++, pengecualian dikendalikan melalui pernyataan try-catch
, yang merangkumi tiga bahagian utama: try-catch
语句处理,包括三个主要部分:
try { // 代码块,可能抛出异常 } catch (const std::exception& e) { // 捕获标准异常 } catch (const MyCustomException& e) { // 捕获自定义异常 }
实战案例:
假设我们有一个函数 divide
,它计算两个数的商,但当分母为 0 时抛出异常:
int divide(int num, int denom) { try { if (denom == 0) { throw std::runtime_error("除数不能为 0"); } return num / denom; } catch (const std::exception& e) { std::cout << "错误: " << e.what() << std::endl; } }
在主函数中,我们可以调用 divide
函数并捕获异常:
int main() { try { int dividend = 10; int divisor = 0; int result = divide(dividend, divisor); std::cout << dividend << " / " << divisor << " = " << result << std::endl; } catch (const std::runtime_error& e) { std::cout << e.what() << std::endl; } }
输出:
错误: 除数不能为 0
注意:
std::exception
。noexcept
rrreeedivide kod >, ia mengira hasil bagi dua nombor, tetapi melemparkan pengecualian apabila penyebutnya ialah 0: 🎜rrreee🎜Dalam fungsi utama, kita boleh memanggil fungsi <code>bahagi
dan menangkap pengecualian: 🎜rrreee🎜 Output: 🎜 rrreee🎜🎜Nota: 🎜🎜std::exception
. 🎜noexcept
untuk mengisytiharkan bahawa fungsi itu tidak akan membuang pengecualian untuk pengoptimuman. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pengecualian dalam fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!