Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengendalikan berbilang pengecualian dalam C++?

Bagaimana untuk mengendalikan berbilang pengecualian dalam C++?

WBOY
WBOYasal
2024-06-06 13:10:58819semak imbas

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 异常
}

catch(...) typeid

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

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 异常
  }
}

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;
}

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

Kenyataan:
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