[GRASS-dev] Catching an issue from external binary using grass Python Script

Glynn Clements glynn at gclements.plus.com
Thu Jul 28 15:14:39 EDT 2011


Jenny Turner wrote:

> I have a Grass Python script that calls an external binary using subprocess
> like:
> p=subprocess(<COMMAND>). Due to some limitations (memory) sometimes i get
> this copied into Command Output:
> This application has requested the Runtime to terminate it
> in an unusual way.
> Please contact the application's support team for more
> information.
> 
> (this is windows)
> 
> 1- How can catch  this error (with except but I don't know which error to
> use

"p=subprocess(<COMMAND>)" isn't valid Python; "subprocess" is a
module.

If you use subprocess.call(), the return value is the return code of
the child process.

If you use subprocess.Popen(), the .wait() method returns the child
process' return code, which can also be retrieved from the .returncode
attribute of the Popen object.

Typically, a return code of zero indicates success while a non-zero
value indicates failure. On Unix, a negative value indicates that the
process terminated due to a signal.

Neither call() nor Popen() raise an exception if the spawned program
"fails" in some sense, only if they are unable to execute the program,
query its status, etc.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list