Rumah > pembangunan bahagian belakang > C++ > Penerokaan pada prinsip pengecualian fungsi C++: Fahami lapisan bawah pengendalian pengecualian

Penerokaan pada prinsip pengecualian fungsi C++: Fahami lapisan bawah pengendalian pengecualian

PHPz
Lepaskan: 2024-05-01 22:18:02
asal
1049 orang telah melayarinya

Prinsip pengendalian pengecualian C++: Melontar pengecualian: Gunakan kata kunci lontaran untuk melontar objek pengecualian. Pengecualian menangkap: Gunakan kata kunci tangkapan untuk menangkap jenis pengecualian tertentu. blok cuba-tangkap: Letakkan segmen kod dalam blok cuba-tangkap untuk mengendalikan pengecualian. Kes praktikal: Fungsi throwError() membuang pengecualian, dan fungsi main() menggunakan blok cuba-tangkap untuk mencetak mesej ralat. Pengecualian Tersuai: Kelas pengecualian tersuai yang diperoleh daripada std::exception boleh dibuat untuk mewakili ralat khusus aplikasi. . Apabila pengecualian berlaku, program melemparkan objek, yang dipanggil pengecualian. Mekanisme pengendalian pengecualian membolehkan pembangun menangkap dan mengendalikan pengecualian ini dengan cara yang elegan, dengan itu meningkatkan keteguhan dan kebolehselenggaraan kod.

C++ 函数异常原理探究:了解异常处理底层Prinsip pengendalian pengecualian

Mekanisme pengendalian pengecualian C++ terdiri daripada tiga bahagian utama:

lontaran: digunakan untuk melontar pengecualian.

tangkapan:

Digunakan untuk mengendalikan jenis pengecualian tertentu.

blok cuba-tangkap:

Sisipkan sekeping kod untuk mengendalikan pengecualian di dalamnya.

  • Kes praktikal
  • Berikut ialah kes praktikal mudah untuk menunjukkan cara menggunakan pengendalian pengecualian:
    #include <iostream>
    
    using namespace std;
    
    void throwError() {
      throw runtime_error("An error occurred");
    }
    
    int main() {
      try {
        throwError();
      }
      catch (runtime_error& e) {
        cout << "Error: " << e.what() << endl;
      }
    
      return 0;
    }
    Salin selepas log masuk
    Dalam kes ini, fungsi throwError() membuang runtime_error < /code> Pengecualian dengan mesej ralat. Fungsi <code>main() menggunakan blok try-catch untuk menangkap pengecualian dan mencetak mesej ralat.
  • Pengecualian Tersuai
C++ membenarkan pembangun membuat kelas pengecualian tersuai untuk mewakili ralat tertentu dalam aplikasi mereka. Kelas pengecualian tersuai mesti terbit daripada kelas asas std::exception.

Begini cara untuk mencipta kelas pengecualian tersuai:

class MyException : public std::exception {
public:
  const char* what() const noexcept override {
    return "My custom exception";
  }
};
Salin selepas log masuk

Menggunakan pengecualian tersuai dalam kod anda kelihatan seperti ini:

try {
  // 代码可能会引发 MyException 异常
}
catch (MyException& e) {
  // 处理 MyException 异常
}
Salin selepas log masuk

KesimpulanthrowError() 函数抛出一个 runtime_error 异常,并附带一条错误消息。main() 函数使用 try-catch 块来捕获异常并打印错误消息。

自定义异常

C++ 允许开发者创建自定义异常类,以表示其应用程序中的特定错误。自定义异常类必须从 std::exception

Pengendalian pengecualian ialah ciri bahasa yang penting dalam C++ untuk mengendalikan keadaan ralat dan tidak dijangka. Memahami prinsip pengendalian pengecualian adalah penting untuk menulis kod yang mantap dan boleh diselenggara.

Atas ialah kandungan terperinci Penerokaan pada prinsip pengecualian fungsi C++: Fahami lapisan bawah pengendalian pengecualian. 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