Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk menangkap dan mengendalikan pengecualian C++?

Bagaimana untuk menangkap dan mengendalikan pengecualian C++?

WBOY
Lepaskan: 2024-06-05 22:33:59
asal
302 orang telah melayarinya

Pengecualian C++ ialah mekanisme untuk mengendalikan peristiwa yang tidak dijangka Pengecualian ditangkap melalui blok percubaan dan dikendalikan menggunakan blok tangkapan. Pertama, gunakan pernyataan lontaran untuk membuang pengecualian Jenis pengecualian boleh menjadi kelas pengecualian perpustakaan standard atau kelas pengecualian tersuai. Dalam kes praktikal, jika pembahagi adalah sifar, fungsi bahagi akan membuang runtime_error, dan pengecualian akan ditangkap dan dikendalikan melalui blok tangkapan dalam fungsi utama.

Bagaimana untuk menangkap dan mengendalikan pengecualian C++?

Cara menangkap dan mengendalikan pengecualian C++

Pengecualian C++ ialah mekanisme untuk mengendalikan peristiwa yang tidak dijangka. Mereka membenarkan atur cara mengendalikan ralat dengan anggun tanpa menyebabkan ranap.

Catching Exceptions

Untuk menangkap pengecualian, gunakan sintaks berikut:

try {
  // 容易抛出异常的代码
} catch (exception& e) {
  // 异常处理代码
}
Salin selepas log masuk

try blok mengandungi kod yang mungkin membuang pengecualian. Jika pengecualian dilemparkan, kawalan dipindahkan ke blok catch yang sepadan. Parameter blok catch menentukan rujukan yang digunakan untuk mengendalikan jenis pengecualian tertentu. try 块包含可能抛出异常的代码。如果抛出异常,控制权将转移到相应的 catch 块。catch 块参数指定用于处理特定异常类型的引用。

抛出异常

可以通过使用 throw 语句来抛出异常:

throw exception();
Salin selepas log masuk

exception 可以是标准库异常类(例如 runtime_error)或自定义异常类。

实战案例

考虑以下代码示例:

#include <exception>

int divide(int a, int b) {
  if (b == 0) {
    throw std::runtime_error("除数不能为零");
  }
  return a / b;
}

int main() {
  try {
    int result = divide(10, 0);
    std::cout << result << std::endl;
  } catch (const std::runtime_error& e) {
    std::cout << "错误:" << e.what() << std::endl;
  }
}
Salin selepas log masuk

main 函数中,我们调用 divide 函数,并尝试捕获可能抛出的任何异常。如果除数为零,divide 函数会抛出一个 runtime_error

Throw exceptions🎜🎜Exceptions boleh dilemparkan dengan menggunakan pernyataan throw: 🎜rrreee🎜exception boleh menjadi kelas pengecualian perpustakaan standard (seperti runtime_error kod >) atau kelas pengecualian tersuai. 🎜🎜Contoh Praktikal🎜🎜Pertimbangkan contoh kod berikut: 🎜rrreee🎜Dalam fungsi <code>main, kami memanggil fungsi divide dan cuba menangkap sebarang pengecualian yang mungkin dilemparkan. Jika pembahagi adalah sifar, fungsi bahagi membuang runtime_error dan memaparkan mesej ralat. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menangkap dan mengendalikan pengecualian C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan