Mehmet Ince
Mehmet Ince

Reputation: 4179

Any way to handle an exception thrown from called c# exe in c++?

I wonder any way to handle inner exceptions of I called exe from c++ code?

My sample code:

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)
{
}

Upvotes: 0

Views: 52

Answers (1)

John Zwinck
John Zwinck

Reputation: 249113

You need to check the return value from system() (as you need to check the return value from all C functions). Like this:

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;

If the child program is at all well-behaved, it will return nonzero to indicate failure when an unhandled exception occurs.

Upvotes: 3

Related Questions