c++ - C++错误处理

标签 c++ error-handling try-catch user-input

是否可以知道由system(cCmdInput);开头的命令是否失败,并且显示错误(如果存在)。

cout << endl << "Enter command> ";
getline(cin, cmdInput);
try{
    cin.clear();
    const char *cCmdInput = cmdInput.c_str();
    system(cCmdInput);
}catch (...){
    cout << "An error occurred";
}

最佳答案

首先,您不应该使用system(),因为它存在很大的安全风险(尤其是在使用来自用户的输入(如上面的代码中)时)。而是看一下exec()系列函数。

但是要回答您的问题,system()不会引发任何异常。您需要检查返回的内容。 According to the documentation,通常会返回您运行的命令的状态码。您需要查找所用命令的返回码,并对照这些返回码检查system()返回的值。通常,返回值0表示成功。

例如:

if(system(cCmdInput) != 0)
   cout << "Error" << endl;

关于c++ - C++错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306275/

相关文章:

C++ typedef 重命名函数

.net - 如何拦截 WCF 序列化期间发生的异常?

c++ - 在头文件中执行 const std::string 的正确方法?

c++ - `is_trivially_destructible` 不适用于继承类

swift - 在 iOS 上创建一个简单的消息应用程序并不断收到相同的错误

c - 用于测试错误处理程序的错误 C 代码

安卓文件读取

wpf - 在 try catch c# 中处理 AccessViolation 异常

swift - 尝试快速捕获变量

C++ "while"解释