// Solution: Robust command processing with queue and exceptions
#include <iostream>
#include <queue>
#include <string>
#include <stdexcept>
void execute_command(const std::string& cmd) {
// Check for bad data
if (cmd == "CORRUPT") {
throw std::runtime_error("Invalid command logic");
}
std::cout << "Executing: " << cmd << std::endl;
}
int main() {
std::queue<std::string> command_queue;
// Populate the queue
command_queue.push("Login");
command_queue.push("CORRUPT");
command_queue.push("Logout");
std::cout << "Starting Command Processor..." << std::endl;
while (!command_queue.empty()) {
// Retrieve and remove the next command
std::string current_cmd = command_queue.front();
command_queue.pop();
try {
// Attempt to execute logic that might fail
execute_command(current_cmd);
}
catch (const std::runtime_error& e) {
// Handle the error without crashing the program
std::cout << "Error: Malformed data skipped" << std::endl;
}
}
return 0;
}