在C++中,命令模式(Command Pattern)是一種行為設計模式,它將請求封裝為一個對象,從而使您可以用不同的請求、隊列或日志請求參數化其他對象。命令模式還支持可撤銷的操作。
在C++中處理異常,通常有以下幾種方法:
void executeCommand(Command* command) {
try {
command->execute();
} catch (const std::exception& e) {
// 處理異常,例如打印日志或執行其他操作
std::cerr << "Error: " << e.what() << std::endl;
}
}
class MyException : public std::exception {
public:
const char* what() const noexcept override {
return "My custom exception occurred";
}
};
在命令類中拋出異常:
void execute() override {
// ... 執行命令的代碼
if (/* some error condition */) {
throw MyException();
}
}
在調用命令的地方捕獲異常:
void executeCommand(Command* command) {
try {
command->execute();
} catch (const MyException& e) {
// 處理自定義異常
}
}
class Command {
public:
virtual ~Command() = default;
void execute() {
// ... 執行命令的代碼
}
};
void executeCommand(std::unique_ptr<Command> command) {
command->execute();
}
在這些方法中,可以根據實際需求和項目結構選擇合適的方式來處理異常。