在 C++ 中,当使用流(如 std::ifstream
或 std::ofstream
)时,常见的异常可以使用以下类型的异常捕获:
std::ios_base::failure
:- 用于捕获与流操作相关的错误,例如打开文件失败、读写错误等。
std::exception
:- 作为基类,可以捕获所有标准异常,适合处理未具体指定的流错误。
c++
#include <iostream>
#include <fstream>
#include <exception>
int main() {
try {
std::ifstream file("nonexistent.txt");
if (!file) {
throw std::ios_base::failure("Failed to open file");
}
// 进行读操作
} catch (const std::ios_base::failure& e) {
std::cerr << "Stream error: " << e.what() << std::endl;
} catch (const std::exception& e) {
std::cerr << "General exception: " << e.what() << std::endl;
}
return 0;
}