在Linux環境下,C++異常處理主要依賴于C++標準庫中的<exception>
頭文件提供的功能。以下是一些基本的C++異常處理方法:
throw
關鍵字拋出一個異常對象。例如:#include <iostream>
#include <stdexcept>
int main() {
if (some_error_condition) {
throw std::runtime_error("An error occurred");
}
return 0;
}
try
和catch
塊來捕獲和處理異常。例如:#include <iostream>
#include <stdexcept>
int main() {
try {
// Code that might throw an exception
if (some_error_condition) {
throw std::runtime_error("An error occurred");
}
} catch (const std::runtime_error& e) {
// Handle the exception
std::cerr << "Caught exception: " << e.what() << std::endl;
}
return 0;
}
catch
塊來捕獲和處理不同類型的異常。例如:#include <iostream>
#include <stdexcept>
int main() {
try {
// Code that might throw an exception
if (some_error_condition) {
throw std::runtime_error("An error occurred");
}
} catch (const std::runtime_error& e) {
// Handle the runtime_error exception
std::cerr << "Caught runtime_error: " << e.what() << std::endl;
} catch (const std::exception& e) {
// Handle any other standard exceptions
std::cerr << "Caught exception: " << e.what() << std::endl;
} catch (...) {
// Handle any other exceptions
std::cerr << "Caught an unknown exception" << std::endl;
}
return 0;
}
std::exception
或其派生類,并重寫what()
方法以提供自定義的錯誤信息。例如:#include <iostream>
#include <stdexcept>
class MyCustomException : public std::runtime_error {
public:
MyCustomException(const std::string& message) : std::runtime_error(message) {}
};
int main() {
try {
// Code that might throw an exception
if (some_error_condition) {
throw MyCustomException("A custom error occurred");
}
} catch (const MyCustomException& e) {
// Handle the custom exception
std::cerr << "Caught custom exception: " << e.what() << std::endl;
} catch (const std::runtime_error& e) {
// Handle the runtime_error exception
std::cerr << "Caught runtime_error: " << e.what() << std::endl;
} catch (const std::exception& e) {
// Handle any other standard exceptions
std::cerr << "Caught exception: " << e.what() << std::endl;
} catch (...) {
// Handle any other exceptions
std::cerr << "Caught an unknown exception" << std::endl;
}
return 0;
}
這些是C++異常處理的基本概念。在實際編程中,應根據具體需求選擇合適的異常處理方法。