有没有办法处理从c ++中调用的c#exe抛出的异常?

时间:2014-03-18 13:00:39

标签: c++ exception

我想知道如何处理我从c ++代码调用exe的内部异常?

我的示例代码:

char *fProg = "..\\ConsoleApp\\EZF\\EncryptZipFtp.exe";
char *fPath = "C:\\Users\\min\\Desktop\\Foto";
char *fPass = "wxRfsdMKH1994wxRMK";

char command[500];
sprintf (command, "%s %s %s", fProg, fPath, fPass); 

try 
{
   system(command);
}
catch(exception &err)
{
}

1 个答案:

答案 0 :(得分:3)

您需要检查system()的返回值(因为您需要检查所有C函数的返回值)。像这样:

int status = system(command);
if (status == -1)
    std::cerr << "oops, could not launch " << command << std::endl;

int rc = WEXITSTATUS(status);
if (rc != 0)
    std::cerr << "error from " << command << ": " << rc << std::endl;

如果子程序表现良好,则在发生未处理的异常时,它将返回非零值以指示失败。