Bagaimana untuk mengendalikan berbilang pengecualian dalam C++?

WBOY
Lepaskan: 2024-06-06 13:10:58
asal
873 orang telah melayarinya

Cara C++ mengendalikan berbilang pengecualian termasuk menggunakan blok cuba-tangkap, yang membenarkan pengecualian ditangkap dan dikendalikan untuk jenis pengecualian tertentu, atau menggunakan blok cuba dan blok tangkapan (...) untuk menangkap semua jenis pengecualian. Dalam kes sebenar, blok cuba mencuba operasi bahagi, menangkap jenis invalid_argument dan pengecualian pengecualian melalui dua blok tangkapan, dan mengeluarkan maklumat ralat yang sepadan.

Bagaimana untuk mengendalikan berbilang pengecualian dalam C++?

Cara mengendalikan berbilang pengecualian dalam C++

C++ menyediakan pelbagai kaedah untuk mengendalikan berbilang pengecualian, termasuk:

try-catch block

try {
  // 代码可能引发异常
} catch (const std::exception& e) {
  // 处理 std::exception 异常
} catch (const std::runtime_error& e) {
  // 处理 std::runtime_error 异常
}
Salin selepas log masuk

catch(...) typeid

try {
  // 代码可能引发异常
} catch (...) {
  // 处理所有异常
}
Salin selepas log masuk

Kes praktikalContoh berikut menunjukkan penggunaan blok try-catch untuk mengendalikan berbilang pengecualian:

try {
  // 代码可能引发异常
} catch (const std::exception& e) {
  if (typeid(e) == typeid(std::runtime_error)) {
    // 处理 std::runtime_error 异常
  }
}
Salin selepas log masuk

Dalam contoh ini:

try cubaan blok untuk dilaksanakan mungkin membuang pengecualian kod.

blok catch (const invalid_argument& e) mengendalikan pengecualian invalid_argument. Blok
  • catch (const exception& e) mengendalikan semua pengecualian lain. try 块尝试执行可能引发异常的代码。
  • catch (const invalid_argument& e) 块处理 invalid_argument 异常。
  • catch (const exception& e)
Menjalankan program ini akan menghasilkan keputusan berikut:

#include <iostream>
#include <exception>

using namespace std;

int main() {
  try {
    int x = 10;
    int y = 0;

    cout << "x / y = " << x / y << endl;
  } catch (const invalid_argument& e) {
    cout << "Division by zero error: " << e.what() << endl;
  } catch (const exception& e) {
    cout << "Error: " << e.what() << endl;
  }

  return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengendalikan berbilang pengecualian dalam 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