Rumah >pembangunan bahagian belakang >C++ >Bagaimana Pengendalian C Exception Berfungsi: Panduan Lengkap untuk `melempar` dan `menangkap`?

Bagaimana Pengendalian C Exception Berfungsi: Panduan Lengkap untuk `melempar` dan `menangkap`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 14:43:10844semak imbas

How Does C   Exception Handling Work: A Complete Guide to `throw` and `catch`?

Memahami Pengendalian Pengecualian C: Panduan Komprehensif untuk Melontar Pengecualian

Pengendalian pengecualian ialah mekanisme penting dalam pengaturcaraan yang membolehkan pembangun menangani ralat yang tidak dijangka dan mengekalkan integriti program. Dalam C , pengecualian diprogramkan menggunakan pernyataan balingan dan tangkap.

Menyesuaikan Pengendalian Pengecualian

Pertimbangkan contoh berikut:

int compare(int a, int b) {
  // ...
}

Andaikan kita mahu membuang pengecualian apabila sama ada a atau b adalah negatif. Untuk mencapai matlamat ini, kita boleh menggunakan pengecualian std::invalid_argument daripada Perpustakaan Standard.

Pelaksanaan Melontar Pengecualian

#include <stdexcept>

int compare(int a, int b) {
  if (a < 0 || b < 0) {
    throw std::invalid_argument("received negative value");
  }
}

Dalam fungsi bandingkan, kami buang pengecualian std::invalid_argument dengan mesej ralat tersuai apabila a atau b adalah negatif.

Menangkap Pengecualian

Pengecualian boleh ditangkap menggunakan pernyataan cuba-tangkap:

try {
  compare(-1, 3);
} catch (const std::invalid_argument& e) {
  // Handle the exception
}

Di dalam blok tangkapan, kami boleh melakukan tindakan tertentu atau log mesej ralat untuk analisis lanjut.

Berbilang Blok Tangkapan dan Pengecualian Lontar Semula

Kami boleh mempunyai berbilang blok tangkapan untuk mengendalikan jenis pengecualian yang berbeza secara berasingan. Selain itu, kita boleh membuang semula pengecualian untuk membiarkan fungsi peringkat lebih tinggi menangani ralat:

try {
  // ...
} catch (const std::invalid_argument& e) {
  // Handle the exception
  throw;  // Re-throw the exception
}

Menangkap Semua Pengecualian

Untuk menangkap pengecualian dari sebarang jenis, kita boleh menggunakan pernyataan catch(...) sebagai catch-all:

try {
  // ...
} catch (...) {
  // Handle all exceptions
}

Dengan memahami dan menggunakan pengecualian secara berkesan pengendalian dalam C , pembangun boleh meningkatkan keteguhan kod mereka dan memperbaik mekanisme pengendalian ralat.

Atas ialah kandungan terperinci Bagaimana Pengendalian C Exception Berfungsi: Panduan Lengkap untuk `melempar` dan `menangkap`?. 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