Dalam C++, pengendalian pengecualian mengendalikan ralat dengan anggun melalui blok cuba-tangkap jenis pengecualian biasa termasuk ralat masa jalan, ralat logik dan ralat luar sempadan. Mengambil pengendalian ralat pembukaan fail sebagai contoh, apabila program gagal membuka fail, ia akan membuang pengecualian dan mencetak mesej ralat dan mengembalikan kod ralat melalui blok tangkapan untuk mengendalikan ralat tanpa menamatkan program. Pengendalian pengecualian memberikan kelebihan seperti pemusatan pengendalian ralat, penyebaran ralat dan keteguhan kod.
Pengendalian pengecualian ialah mekanisme berkuasa yang membolehkan program mengendalikan ralat dengan anggun dan mengekalkan integriti kod. Dalam C++, pengecualian dikendalikan melalui blok try-catch
: try-catch
块处理:
try { // 可能会引发异常的代码 } catch (exception& e) { // 处理异常 }
C++ 标准库定义了多种异常类型:
runtime_error
:运行时错误,例如内存分配失败logic_error
:逻辑错误,例如参数无效invalid_argument
:无效函数参数out_of_range
:超出界限的索引或值考虑一个程序,它尝试打开一个文件:
#include <fstream> #include <iostream> using namespace std; int main() { ifstream infile; try { infile.open("data.txt"); if (!infile.is_open()) throw runtime_error("无法打开文件!"); } catch (const runtime_error& e) { cerr << "错误:" << e.what() << endl; return -1; // 返回错误代码 } // 使用文件 infile.close(); return 0; }
当程序打开文件失败时,它会抛出一个 runtime_error
异常,并通过 catch
块进行处理。该块打印错误消息并返回一个错误代码。这允许程序在不意外终止的情况下优雅地处理错误。
异常处理提供以下优势:
catch
rrreee runtime_error
: Ralat masa jalan, seperti kegagalan peruntukan memoriruntime_error
dilemparkan dan dikendalikan melalui blok catch
. Blok ini mencetak mesej ralat dan mengembalikan kod ralat. Ini membolehkan atur cara mengendalikan ralat dengan anggun tanpa penamatan yang tidak dijangka. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengendalikan senario ralat dalam C++ dengan berkesan melalui pengendalian pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!