C++ 语言的异常处理机制允许程序在遇到错误时不会立即终止,而是能够以一种更可控和优雅的方式处理这些错误。异常处理机制包括三个主要的关键字:try
、catch
和 throw
。
-
try:一个
try
块包含了可能会抛出异常的代码。如果try
块中的代码抛出了异常,程序的控制流将立即转移到相应的catch
块。 -
catch:一个
catch
块用于捕获并处理try
块中抛出的异常。在catch
块中,你可以定义异常的类型,并且执行处理异常的代码。 -
throw:
throw
关键字用于抛出一个异常。抛出的异常可以是标准异常类型,也可以是用户定义的异常类型。
下面是一个简单的异常处理示例:
#include <iostream>
#include <stdexcept>
int divide(int a, int b) {
if (b == 0) {
throw std::invalid_argument("Division by zero is not allowed.");
}
return a / b;
}
int main() {
try {
int result = divide(10, 0);
std::cout << "Result: " << result << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
在这个例子中,如果尝试除以零,divide
函数会抛出一个 std::invalid_argument
异常。在 main
函数的 try
块中调用 divide
函数,如果抛出异常,控制流将跳转到 catch
块,捕获异常并打印错误信息。
异常处理机制是 C++ 语言的一个强大特性,它允许程序在遇到错误时继续执行,而不是立即崩溃。这使得程序更加健壮和可靠。